:root {
  --ink: #18231d;
  --muted: #667169;
  --line: #dfe3dc;
  --paper: #fffefb;
  --canvas: #f4f3ed;
  --green: #176b45;
  --green-dark: #0e4f33;
  --lime: #d8f257;
  --clay: #cf6948;
  --soft-green: #e8f2ec;
  --soft-yellow: #f6f4d8;
  --shadow: 0 14px 40px rgba(24, 35, 29, 0.08);
  --radius: 18px;
}

/* Chengdu shadow-gameplay review */
.selection-header h2 { display: flex; align-items: center; gap: 8px; }
.info-tip { position: relative; display: inline-grid; place-items: center; width: 18px; height: 18px; flex: 0 0 18px; border: 1px solid #cbd4ce; border-radius: 50%; color: var(--muted); font-size: 11px; font-weight: 800; line-height: 1; text-transform: none; letter-spacing: 0; cursor: help; }
.info-tip-bubble { position: fixed; z-index: 80; top: 8px; left: 8px; width: max-content; max-width: calc(100vw - 16px); padding: 8px 10px; border-radius: 8px; background: #10231b; color: #fff !important; font-size: 12px !important; font-weight: 600 !important; line-height: 1.35; text-transform: none !important; letter-spacing: 0 !important; opacity: 0; pointer-events: none; transition: opacity .15s ease; }
.info-tip:hover .info-tip-bubble, .info-tip:focus .info-tip-bubble, .info-tip:focus-within .info-tip-bubble { opacity: 1; }
.provisional-match { border-style: dashed; }
.shadow-context-card { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 18px; padding: 18px; border: 1px solid var(--line); border-left: 4px solid var(--green); border-radius: 14px; background: white; }
.shadow-context-card.warning { border-left-color: #b6691d; }
.shadow-context-card.pending { border-left-color: #557180; }
.shadow-context-card.eliminated { border-left-color: #aa4438; }
.shadow-context-main { min-width: 0; flex: 1; }
.shadow-context-card .status-line { display: flex; align-items: center; gap: 10px; }
.shadow-context-card .status-dot { width: 10px; height: 10px; flex: 0 0 auto; border-radius: 50%; background: var(--green); }
.shadow-context-card.warning .status-dot { background: #b6691d; }
.shadow-context-card.pending .status-dot { background: #557180; }
.shadow-context-card.eliminated .status-dot { background: #aa4438; }
.shadow-context-card h2, .shadow-context-card p { margin: 0; }
.shadow-context-card h2 { font-size: 18px; }
.shadow-context-card > .shadow-context-main > p { margin: 5px 0 0 20px; color: var(--muted); }
.shadow-context-action { flex: 0 0 auto; }
.shadow-context-selection { max-width: 520px; margin: 14px 0 0 20px; padding-top: 12px; border-top: 1px solid var(--line); }
.shadow-context-player { display: flex; min-height: 40px; align-items: center; justify-content: space-between; gap: 16px; }
.shadow-context-player .state { flex: 0 0 auto; color: var(--muted); font-size: 12px; font-weight: 800; }
.shadow-context-player .state.won { color: var(--green); }
.shadow-context-player .state.lost { color: #aa4438; }
.shadow-history .section-head > span { color: var(--muted); font-size: 12px; }
.shadow-history-list { display: grid; gap: 10px; }
.shadow-history-round { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: white; }
.shadow-history-round > div:first-child { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; background: #f3f6f1; color: var(--muted); font-size: 12px; }
.shadow-history-round > div:first-child strong { color: var(--green); }
.shadow-history-player { display: flex; min-height: 52px; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 14px; border-top: 1px solid var(--line); }
.shadow-history-player .state, .shadow-gameplay-page .summary-row .state { flex: 0 0 auto; font-size: 12px; font-weight: 800; }
.shadow-history-player .state.won, .shadow-gameplay-page .summary-row .state.won { color: var(--green); }
.shadow-gameplay-page .summary-row .state.lost { color: #aa4438; }
.shadow-state-lab { margin-bottom: 0; }

@media (max-width: 779px) {
  .shadow-context-card { align-items: stretch; flex-direction: column; gap: 16px; }
  .shadow-context-card .button { width: 100%; }
  .shadow-context-selection { max-width: none; }
  .shadow-history .section-head { align-items: flex-start; flex-direction: column; gap: 3px; }
  .shadow-history-player { padding-inline: 10px; }
}

* { box-sizing: border-box; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--canvas);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

button { font: inherit; }
.hidden { display: none !important; }

button:focus-visible {
  outline: 3px solid rgba(23, 107, 69, 0.3);
  outline-offset: 2px;
}

.app-shell {
  min-height: 100dvh;
  max-width: 1180px;
  margin: 0 auto;
  background: var(--paper);
  padding-bottom: calc(82px + env(safe-area-inset-bottom));
}
.app-shell.auth-shell { max-width: none; padding-bottom: 0; }

.topbar {
  height: 68px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 18px;
  border-bottom: 1px solid var(--line);
  background: rgba(255, 254, 251, 0.94);
  position: sticky;
  top: 0;
  z-index: 10;
  backdrop-filter: blur(14px);
}

.brand,
.top-actions { display: flex; align-items: center; gap: 10px; }
.brand { min-height: 44px; border: 0; background: none; color: var(--ink); font-weight: 800; padding: 0; }

.icon-button,
.avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: white;
  color: var(--green);
}
.icon-button { font-size: 11px; font-weight: 900; }

.avatar { background: var(--ink); color: white; font-size: 12px; font-weight: 800; }

.page { padding: 22px 18px 40px; }

.eyebrow {
  margin: 0 0 8px;
  color: var(--green);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

h1, h2, h3, p { margin-top: 0; }
h1 { max-width: 760px; margin-bottom: 10px; font-size: clamp(30px, 6vw, 54px); line-height: 0.98; letter-spacing: -0.045em; }
h2 { margin-bottom: 14px; font-size: 22px; letter-spacing: -0.02em; }
h3 { margin-bottom: 5px; font-size: 16px; }
.lede { max-width: 650px; color: var(--muted); font-size: 16px; line-height: 1.5; }

.hero {
  overflow: hidden;
  min-height: 280px;
  border-radius: 26px;
  padding: 26px;
  color: white;
  background:
    radial-gradient(circle at 88% 20%, rgba(216, 242, 87, 0.88) 0 7%, transparent 7.5%),
    linear-gradient(145deg, #0b5636 0%, #168055 62%, #83a92f 150%);
  position: relative;
  box-shadow: var(--shadow);
}

.hero::after {
  content: "";
  position: absolute;
  right: -100px;
  bottom: -175px;
  width: 360px;
  height: 360px;
  border: 2px solid rgba(255, 255, 255, 0.25);
  border-radius: 50%;
  box-shadow: inset 0 0 0 36px rgba(255,255,255,.035);
}

.hero .eyebrow { color: var(--lime); }
.hero h1 { max-width: 560px; }
.hero p { max-width: 560px; color: rgba(255,255,255,.78); }
.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 24px; position: relative; z-index: 1; }

.button {
  min-height: 48px;
  border: 0;
  border-radius: 14px;
  padding: 0 18px;
  background: var(--green);
  color: white;
  font-weight: 800;
  cursor: pointer;
}

.button:hover { background: var(--green-dark); }
.button.accent { background: var(--lime); color: var(--ink); }
.button.secondary { background: white; color: var(--ink); border: 1px solid var(--line); }
.button.ghost { background: transparent; color: var(--green); border: 1px solid #b9cfc1; }
.button.block { width: 100%; }
.button:disabled { cursor: not-allowed; opacity: .45; }

.meta-row { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 20px; }
.pill {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.13);
  font-size: 12px;
  font-weight: 750;
}

.section { margin-top: 28px; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.section-head h2, .section-head p { margin-bottom: 0; }
.text-button { border: 0; background: none; color: var(--green); font-weight: 800; cursor: pointer; }

.cards { display: grid; gap: 12px; }
.card {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: white;
  box-shadow: 0 5px 18px rgba(24,35,29,.035);
}
.card-title-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.card-title-row h3 { margin: 0; }
.status-chip { display: inline-flex; align-items: center; min-height: 23px; padding: 0 8px; border-radius: 999px; background: var(--soft-green); color: var(--green-dark); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.warning-card .status-chip { background: #fff1df; color: #995315; }
.active-card { border-color: #b8d5c2; }

.tournament-card { display: grid; grid-template-columns: 52px 1fr auto; gap: 14px; align-items: center; }
.event-mark { display: grid; place-items: center; width: 52px; height: 58px; border-radius: 16px; background: #e8ebd0; color: #526117; font-weight: 900; }
.tournament-card p { margin: 0; color: var(--muted); font-size: 13px; }
.mini-button { min-height: 38px; padding: 0 14px; border: 0; border-radius: 11px; background: var(--ink); color: white; font-weight: 800; }
.metric span, .metric small { display: block; color: var(--muted); }
.metric span { font-size: 12px; font-weight: 850; text-transform: uppercase; letter-spacing: .05em; }
.metric strong { display: block; margin: 7px 0 4px; font-size: 30px; }
.three-col { grid-template-columns: repeat(3, 1fr); }

.lifecycle-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  padding: 5px;
  margin-bottom: 16px;
  border-radius: 15px;
  background: #e9ece7;
}
.lifecycle-tabs button { min-height: 44px; border: 0; border-radius: 11px; background: transparent; color: var(--muted); font-weight: 850; }
.lifecycle-tabs button.active { background: white; color: var(--ink); box-shadow: 0 3px 12px rgba(24,35,29,.08); }
.lifecycle-tabs span { display: inline-grid; place-items: center; min-width: 21px; height: 21px; margin-left: 6px; border-radius: 999px; background: var(--soft-green); color: var(--green-dark); font-size: 10px; }
.lifecycle-content { min-height: 150px; }
.archive-tools { display: flex; justify-content: space-between; align-items: end; gap: 14px; margin-bottom: 16px; }
.archive-tools label { display: grid; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 850; text-transform: uppercase; }
.archive-tools select { min-width: 120px; min-height: 42px; border: 1px solid var(--line); border-radius: 11px; padding: 0 34px 0 12px; background: white; color: var(--ink); font: inherit; font-weight: 750; }
.tour-filter { display: flex; gap: 5px; padding: 4px; border-radius: 12px; background: #e9ece7; }
.common-tour-filter { width: fit-content; margin: 0 0 16px; }
.tour-filter button { min-width: 64px; min-height: 36px; border: 0; border-radius: 9px; background: transparent; color: var(--muted); font-weight: 850; }
.tour-filter button.active { background: white; color: var(--ink); box-shadow: 0 2px 8px rgba(24,35,29,.08); }
.completed-card { display: grid; gap: 16px; }
.completed-card-head { display: grid; grid-template-columns: 52px 1fr auto; gap: 14px; align-items: center; }
.completed-card-head .eyebrow { margin-bottom: 4px; }
.completed-card-head h3, .completed-card-head p { margin-bottom: 0; }
.completed-card-head p:not(.eyebrow) { color: var(--muted); font-size: 12px; }
.completed-results { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.completed-results div { padding: 12px; border-radius: 12px; background: #f5f6f2; }
.completed-results span, .completed-results strong { display: block; }
.completed-results span { margin-bottom: 5px; color: var(--muted); font-size: 10px; font-weight: 750; text-transform: uppercase; }
.completed-results strong { font-size: 13px; line-height: 1.3; }
.completed-results .muted-result { color: var(--muted); font-weight: 650; }
.archive-empty { border: 1px dashed #cfd5ce; border-radius: 18px; background: #fafaf7; }
.archive-empty p { color: var(--muted); }

.step-header { margin-bottom: 22px; }
.back-button { border: 0; background: transparent; color: var(--green); padding: 0 0 14px; font-weight: 800; }
.progress-track { height: 7px; overflow: hidden; background: #e8ece8; border-radius: 999px; }
.progress-fill { height: 100%; border-radius: inherit; background: var(--green); transition: width .25s ease; }
.progress-copy { display: flex; justify-content: space-between; margin-top: 8px; color: var(--muted); font-size: 12px; }

.half-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 5px; margin: 18px 0; border-radius: 14px; background: #eef0eb; }
.half-tabs button { min-height: 42px; border: 0; border-radius: 10px; background: transparent; color: var(--muted); font-weight: 800; }
.half-tabs button.active { background: white; color: var(--ink); box-shadow: 0 3px 12px rgba(24,35,29,.08); }

.search { width: 100%; height: 46px; border: 1px solid var(--line); border-radius: 14px; padding: 0 15px; background: white; color: var(--ink); font: inherit; }
.view-toggle, .ranking-tabs, .tournament-tabs { display: flex; gap: 6px; margin: 16px 0; padding: 5px; border-radius: 14px; background: #eef0eb; }
.view-toggle { width: fit-content; }
.view-toggle button, .ranking-tabs button, .tournament-tabs button { min-height: 40px; border: 0; border-radius: 10px; padding: 0 16px; background: transparent; color: var(--muted); font-weight: 850; }
.view-toggle button.active, .ranking-tabs button.active, .tournament-tabs button.active { background: white; color: var(--ink); box-shadow: 0 3px 12px rgba(24,35,29,.07); }
.selection-tools { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 16px 0 12px; }
.selection-tools strong { font-size: 14px; }
.draw-board { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; overflow: auto; }
.bracket-match { position: relative; display: grid; gap: 1px; min-width: 260px; margin-bottom: 14px; padding-right: 28px; }
.bracket-match span { padding: 9px 11px; border: 1px solid var(--line); background: white; font-size: 13px; }
.bracket-match span:first-child { border-radius: 10px 10px 0 0; }
.bracket-match span:nth-child(2) { border-top: 0; border-radius: 0 0 10px 10px; }
.bracket-match b { position: absolute; right: 0; top: 50%; transform: translateY(-50%); color: var(--muted); font-size: 11px; }

.draw-page { overflow: visible; }
.tournament-context { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.draw-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 18px 0 12px; }
.round-jump, .draw-half-filter { display: flex; gap: 5px; padding: 4px; overflow-x: auto; border-radius: 12px; background: #e9ece7; scrollbar-width: none; }
.round-jump::-webkit-scrollbar, .draw-half-filter::-webkit-scrollbar { display: none; }
.round-jump button, .draw-half-filter button { flex: 0 0 auto; min-height: 36px; border: 0; border-radius: 9px; padding: 0 13px; background: transparent; color: var(--muted); font-size: 12px; font-weight: 850; }
.round-jump button.active, .draw-half-filter button.active { background: white; color: var(--ink); box-shadow: 0 2px 8px rgba(24,35,29,.08); }
.draw-meta-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 18px 0 12px; }
.draw-key { display: flex; flex-wrap: wrap; gap: 10px 18px; margin: 0; color: var(--muted); font-size: 11px; }
.compact-half-filter { flex: 0 0 auto; }
.draw-key span { display: inline-flex; align-items: center; gap: 6px; }
.draw-browse-tools { display: grid; grid-template-columns: minmax(260px,1fr) 220px; gap: 12px; align-items: end; margin: 14px 0; }
.draw-player-search, .draw-section-select { position: relative; display: grid; gap: 6px; min-width: 0; color: var(--muted); font-size: 11px; font-weight: 800; }
.draw-search-field { position: relative; }
.draw-search-field input, .draw-section-select select { width: 100%; min-height: 42px; border: 1px solid var(--line); border-radius: 12px; background: white; color: var(--ink); font: inherit; font-size: 13px; font-weight: 700; }
.draw-search-field input { padding: 0 42px 0 13px; }
.draw-section-select select { padding: 0 36px 0 13px; }
.draw-search-field input:focus, .draw-section-select select:focus { border-color: var(--green); outline: 3px solid rgba(23,107,69,.12); }
.draw-search-clear { position: absolute; top: 50%; right: 8px; width: 28px; height: 28px; transform: translateY(-50%); border: 0; border-radius: 50%; background: #edf1ed; color: var(--ink); font-size: 18px; line-height: 1; }
.draw-search-results { position: absolute; z-index: 14; top: calc(100% + 5px); left: 0; right: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: 0 12px 28px rgba(24,35,29,.14); }
.draw-search-results button { display: flex; align-items: center; gap: 9px; width: 100%; min-height: 40px; padding: 7px 11px; border: 0; border-bottom: 1px solid #edf0ec; background: white; color: var(--ink); text-align: left; font-size: 13px; font-weight: 750; }
.draw-search-results button:last-child { border-bottom: 0; }
.draw-search-results button:hover, .draw-search-results button:focus-visible { background: var(--soft-green); outline: 0; }
.winner-key { width: 18px; height: 18px; border-radius: 5px; background: #e8f4eb; border: 1px solid #cfe2d4; }
.selection-key { width: 18px; height: 18px; border: 2px solid #2f6fb3; border-radius: 5px; background: #eaf3ff; }
.draw-sticky-head { position: sticky; top: 68px; z-index: 8; display: grid; grid-template-columns: 52px minmax(0,1fr) 52px; width: 100%; height: 48px; overflow: hidden; border: 1px solid var(--line); border-bottom: 0; border-radius: 20px 20px 0 0; background: rgba(247,249,244,.96); box-shadow: 0 4px 12px rgba(24,35,29,.04); backdrop-filter: blur(10px); }
.draw-heading-scroll { min-width: 0; overflow: hidden; }
.draw-window-arrow { position: relative; z-index: 2; border: 0; border-radius: 0; background: var(--green); color: white; font-size: 30px; font-weight: 900; line-height: 1; }
.draw-window-arrow:not(:disabled):hover { background: var(--green-dark); }
.draw-window-arrow:focus-visible { outline: 3px solid var(--lime); outline-offset: -4px; }
.draw-window-arrow:disabled { background: #e2e7e1; color: #879189; }
.draw-viewport { overflow-x: auto; overflow-y: hidden; border: 1px solid var(--line); border-radius: 0 0 20px 20px; background: linear-gradient(90deg,#fbfcf8,#f5f7f2); scroll-snap-type: x proximity; scrollbar-color: #aeb8af transparent; }
.bracket-stage { position: relative; width: var(--stage-width, 800px); height: var(--stage-height, 930px); }
.bracket-headings { position: relative; width: var(--stage-width, 800px); height: 48px; background: rgba(247,249,244,.95); border-bottom: 1px solid var(--line); }
.bracket-heading { position: absolute; left: var(--x); top: 0; display: flex; align-items: center; justify-content: center; width: min(240px, calc(var(--column-width, 200px) - 20px)); height: 48px; padding: 0 8px; color: var(--ink); font-size: 13px; font-weight: 900; text-align: center; scroll-snap-align: start; }
.bracket-heading.is-quarterfinal { justify-content: center; gap: .28em; }
.bracket-heading small { color: var(--muted); font-size: 9px; font-weight: 750; text-transform: uppercase; }
.bracket-lines { position: absolute; inset: 0; width: var(--stage-width, 800px); height: var(--stage-height, 930px); pointer-events: none; }
.bracket-lines path { fill: none; stroke: #aebbb1; stroke-width: 1.25; opacity: .56; vector-effect: non-scaling-stroke; transition: opacity .2s ease; }
.bracket-lines path.compression-boundary { stroke: #b9c4bb; stroke-width: 1; opacity: .3; }
.bracket-lines path.search-route { stroke: #2f6fb3; stroke-width: 2.3; opacity: .95; }
.bracket-lines path.search-route.future-route { stroke-dasharray: 5 4; opacity: .55; }
.bracket-card { position: absolute; left: var(--x); top: var(--layout-top, calc(var(--y) - 28px)); z-index: 2; width: min(240px, calc(var(--column-width, 200px) - 20px)); min-height: 56px; overflow: hidden; border: 1px solid #cfd6d0; border-radius: 8px; background: white; box-shadow: 0 2px 6px rgba(24,35,29,.04); transition: opacity .2s ease; }
.bracket-card.search-path { border: 2px solid #2f6fb3; box-shadow: 0 4px 12px rgba(47,111,179,.12); }
.bracket-card.search-path-future { border-style: dashed; background: #f7faff; }
.bracket-player { position: relative; display: grid; grid-template-columns: 18px 20px minmax(0,1fr) max-content; gap: 4px; align-items: center; min-height: 27px; padding: 3px 6px; border-top: 1px solid #edf0ec; font-size: 10px; }
.bracket-player:first-child { border-top: 0; }
.bracket-bye-player { display: grid; grid-template-columns: 18px 20px minmax(0,1fr) max-content; }
.bracket-bye-player .bracket-name { grid-column: 3; }
.bracket-unresolved-player { min-height: 27px; }
.bracket-name { display: flex; min-width: 0; overflow: hidden; gap: .3em; align-items: baseline; color: var(--ink); font-weight: 600; white-space: nowrap; }
.bracket-initial { flex: 0 0 auto; }
.bracket-surname { min-width: 0; }
.bracket-designation { flex: 0 0 auto; }
.bracket-name.drop-initial .bracket-initial { display: none; }
.bracket-name.wrap-designation { display: grid; grid-template-columns: minmax(0,1fr); gap: 0; line-height: 1; white-space: normal; }
.bracket-name.wrap-designation .bracket-designation { grid-row: 2; font-size: 8px; }
.bracket-name.truncate-surname .bracket-surname { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bracket-portrait-placeholder { position: relative; display: block; width: 20px; height: 20px; overflow: hidden; border: 1px solid #cfd5d2; border-radius: 50%; background: #f7f8f7; }
.bracket-portrait-placeholder::before, .bracket-portrait-placeholder::after { content: ""; position: absolute; left: 50%; background: #b4bcb8; transform: translateX(-50%); }
.bracket-portrait-placeholder::after { bottom: 0; width: 15px; height: 7px; border-radius: 9px 9px 4px 4px; }
.bracket-portrait-placeholder.male::before { top: 2px; width: 6px; height: 10px; border-radius: 45% 45% 38% 38%; }
.bracket-portrait-placeholder.female::before { top: 2px; width: 10px; height: 11px; clip-path: polygon(30% 0,70% 0,88% 18%,100% 78%,72% 70%,68% 100%,32% 100%,28% 70%,0 78%,12% 18%); }
.bracket-player.search-player { background: #eaf3ff; }
.bracket-player.winner { background: #e8f4eb; }
.bracket-player.winner .bracket-name { color: var(--green-dark); font-weight: 850; }
.bracket-player.winner.search-player { background: #eaf3ff; }
.bracket-player.winner.search-player .bracket-name { color: #174f8b; }
.bracket-country, .bracket-result { color: var(--muted); font-size: 9px; }
.bracket-country { display: grid; place-items: center; align-self: center; width: 18px; min-width: 18px; height: 18px; }
.bracket-country .country-flag { font-size: 12px; }
.bracket-country.is-empty { color: #aeb6af; }
.bracket-result { display: grid; justify-items: end; min-width: 0; font-weight: 750; line-height: .9; white-space: nowrap; }
.bracket-result small { margin-top: 2px; font-size: 7px; font-weight: 900; }
.bracket-sets { display: grid; grid-auto-flow: column; grid-auto-columns: 11px; justify-content: end; gap: 4px; }
.bracket-sets > span { position: relative; width: 11px; text-align: center; }
.bracket-sets sup { position: absolute; top: -.08em; left: calc(50% + 4px); font-size: 6px; font-weight: 850; line-height: 1; }
.muted-path { opacity: .1 !important; }
.draw-footnote { margin: 10px 2px 0; color: var(--muted); font-size: 11px; }
.draw-scroll-preserver { width: 1px; pointer-events: none; }
@media (min-width: 700px) {
  .windowed-headings, .windowed-bracket { margin-inline: auto; }
}
.match-list { display: grid; gap: 10px; margin-top: 14px; }
.match-card { padding: 6px; border: 1px solid var(--line); border-radius: 16px; background: white; }
.match-meta { display: flex; justify-content: space-between; padding: 7px 10px 5px; color: var(--muted); font-size: 11px; font-weight: 700; }
.player-row { display: grid; grid-template-columns: 34px 1fr auto; gap: 10px; align-items: center; min-height: 52px; padding: 7px 9px; border-radius: 12px; }
.player-row + .player-row { border-top: 1px solid #edf0ec; }
.player-row.selected { background: var(--soft-green); }
.player-row.selected:not(.disabled-row) { transition: background-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.player-row.selected:not(.disabled-row):not(.selection-just-added):hover { background: #f9e9e5; box-shadow: inset 0 0 0 1px rgba(154,73,61,.28); transform: translateY(-1px); }
.player-row.selected:not(.disabled-row):not(.selection-just-added):hover .pick-toggle { border-color: #9a493d; background: #9a493d; color: #fff; font-size: 0; transform: scale(1.06); }
.player-row.selected:not(.disabled-row):not(.selection-just-added):hover .pick-toggle::after { content:"−"; font-size: 20px; line-height: 1; }
.player-seed { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #f0f1ed; color: var(--muted); font-size: 11px; font-weight: 800; }
.player-name { font-size: 14px; font-weight: 800; }
.player-country { display: flex; align-items: center; gap: 5px; min-height: 17px; color: var(--muted); font-size: 11px; }
.country-flag { display: inline-block; font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif; font-size: 17px; line-height: 1; vertical-align: middle; }
.pick-toggle { width: 34px; height: 34px; border: 1px solid #cbd3cd; border-radius: 50%; background: white; color: var(--green); font-weight: 900; transition: background-color .16s ease, border-color .16s ease, transform .16s ease; }
.selected .pick-toggle { border-color: var(--green); background: var(--green); color: white; }
.player-row.disabled-row { background: #f5f4f2; cursor: default; }
.player-row.disabled-row .player-seed { background: #e8e8e5; color: #858b86; }
.player-row.disabled-row .player-name { color: #626a65; }
.player-row.disabled-row .player-portrait { filter: grayscale(.7) saturate(.45); opacity: .62; }
.player-row.disabled-row .player-portrait-placeholder { opacity: .72; }
.player-row.used-player-row { background: #faf5f3; }
.player-status { justify-self: end; }
.player-status-used { display: inline-flex; align-items: center; min-height: 30px; padding: 5px 10px; border: 1px solid #efd1cb; border-radius: 999px; background: #f8e4e0; color: #8d3027; font-size: 11px; font-weight: 800; line-height: 1.15; text-align: center; }

.sticky-action {
  position: sticky;
  bottom: 72px;
  z-index: 5;
  margin: 20px -4px 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255,254,251,.96);
  box-shadow: 0 12px 32px rgba(24,35,29,.14);
  backdrop-filter: blur(16px);
}
.sticky-action p { margin: 0 0 10px; color: var(--muted); font-size: 12px; }

.success-note { display: flex; gap: 10px; align-items: start; padding: 14px; margin-bottom: 16px; border-radius: 16px; background: var(--soft-green); color: var(--green-dark); }
.success-note strong { display: block; margin-bottom: 3px; }
.success-note p { margin: 0; font-size: 13px; }

.bench-grid { display: grid; gap: 14px; }
.bench-card { border: 1px solid var(--line); border-radius: 18px; padding: 16px; background: white; }
.bench-card .label { color: var(--green); font-size: 12px; font-weight: 900; text-transform: uppercase; }
.protected-picks { display: flex; gap: 8px; margin: 12px 0; }
.protected-picks button { flex: 1; min-height: 40px; border: 1px solid var(--line); border-radius: 12px; background: white; color: var(--muted); font-weight: 750; }
.protected-picks button.active { border-color: var(--green); background: var(--soft-green); color: var(--green-dark); }
.bench-option { display: flex; justify-content: space-between; align-items: center; padding: 11px 0; border-top: 1px solid #edf0ec; }
.bench-option button { border: 0; border-radius: 10px; padding: 8px 11px; background: var(--ink); color: white; font-weight: 800; }

.status-panel { padding: 20px; border-radius: 22px; background: var(--ink); color: white; }
.status-panel .eyebrow { color: var(--lime); }
.status-line { display: flex; align-items: center; gap: 10px; }
.status-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 0 6px rgba(216,242,87,.12); }
.status-panel p { margin: 10px 0 0; color: rgba(255,255,255,.7); }
.status-panel.warning { background: #6f4616; }
.status-panel.pending { background: #253c4a; }
.status-panel.eliminated { background: #4c302b; }
.status-panel.winner { background: linear-gradient(135deg,#0c4a30,#6b7f1f); }
.status-panel.complete { background: #343934; }
.status-panel.warning .status-dot, .status-panel.eliminated .status-dot { background: #ffb768; }
.status-panel.pending .status-dot { background: #8bd2ff; }
.status-panel.winner .status-dot { background: var(--lime); }
.tournament-tabs { margin-top: 16px; }

.deadline-card { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.deadline-card p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.deadline-time { text-align: right; font-weight: 900; color: var(--clay); }

.selection-summary { display: grid; gap: 8px; }
.summary-row { display: grid; grid-template-columns: 8px 1fr auto; gap: 10px; align-items: center; padding: 12px; background: #f7f7f3; border-radius: 12px; }
.summary-row .bar { width: 8px; height: 34px; border-radius: 10px; background: var(--green); }
.summary-row p { margin: 2px 0 0; color: var(--muted); font-size: 12px; }
.summary-row .state { color: var(--green); font-size: 12px; font-weight: 900; }

.ranking-list { display: grid; gap: 8px; }
.ranking-row { display: grid; grid-template-columns: 32px 1fr auto; align-items: center; gap: 10px; padding: 12px 8px; border-bottom: 1px solid #edf0ec; }
.ranking-row { width: 100%; border-left: 0; border-right: 0; border-top: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.ranking-row.you { border: 0; border-radius: 12px; background: var(--soft-yellow); }
.rank { font-weight: 900; text-align: center; }
.ranking-row p { margin: 2px 0 0; color: var(--muted); font-size: 12px; }
.points { font-weight: 900; }
.advance-card { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 20px; border: 1px solid #cfe0d3; border-radius: 20px; background: var(--soft-green); }
.advance-card p { margin-bottom: 0; color: var(--muted); }
.result-summary { background: linear-gradient(135deg,#f7f7f1,#eef3e4); }
.result-metrics { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-top: 18px; }
.result-metrics div { padding: 14px; border-radius: 14px; background: white; }
.result-metrics strong, .result-metrics span { display: block; }
.result-metrics strong { font-size: 24px; }
.result-metrics span { margin-top: 4px; color: var(--muted); font-size: 12px; }
.completed-winners { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.completed-winners div { padding: 13px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.75); }
.completed-winners span, .completed-winners strong { display: block; }
.completed-winners span { margin-bottom: 4px; color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.info-note { margin: 14px 0; padding: 15px 17px; border-radius: 15px; background: var(--soft-green); color: var(--green-dark); }
.info-note p { margin: 4px 0 0; }
.ranking-summary { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; overflow: hidden; margin: 16px 0; border: 1px solid var(--line); border-radius: 18px; background: var(--line); }
.ranking-summary div { padding: 16px; background: white; }
.ranking-summary span, .ranking-summary strong { display: block; }
.ranking-summary span { color: var(--muted); font-size: 12px; }
.ranking-summary strong { margin-top: 4px; font-size: 24px; }
.profile-hero { display: flex; align-items: center; gap: 22px; margin-bottom: 24px; padding: 24px; border: 1px solid var(--line); border-radius: 24px; background: white; }
.profile-hero h1 { margin-bottom: 6px; }
.profile-hero p { margin-bottom: 0; color: var(--muted); }
.result-table { overflow: hidden; padding: 0; }
.table-row { display: grid; grid-template-columns: 1.4fr 1fr .65fr .65fr; align-items: center; gap: 10px; padding: 13px 15px; border-top: 1px solid var(--line); font-size: 13px; }
.table-row.header { border-top: 0; background: #eef0eb; color: var(--muted); font-size: 11px; font-weight: 900; text-transform: uppercase; }

.auth-page, .onboarding-page { min-height: 100dvh; padding: 24px; background: #f3f3ed; }
.auth-brand { display: flex; align-items: center; gap: 10px; max-width: 1180px; margin: 0 auto 24px; font-size: 18px; }
.auth-brand .language-link { margin-left: auto; }
.language-link { border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; background: white; font-weight: 850; }
.auth-grid { display: grid; grid-template-columns: 1.15fr .85fr; min-height: calc(100dvh - 100px); max-width: 1180px; margin: 0 auto; overflow: hidden; border-radius: 28px; background: white; box-shadow: var(--shadow); }
.auth-visual { position: relative; overflow: hidden; padding: 64px; color: white; background: linear-gradient(145deg,#0c5837,#1d8a59); }
.auth-visual .eyebrow { color: var(--lime); }
.auth-visual h1 { max-width: 570px; font-size: clamp(44px,6vw,76px); }
.auth-visual p { max-width: 540px; color: rgba(255,255,255,.75); font-size: 18px; line-height: 1.5; }
.court-lines { position: absolute; right: -160px; bottom: -260px; width: 620px; height: 620px; border: 2px solid rgba(255,255,255,.22); border-radius: 50%; box-shadow: inset 0 0 0 50px rgba(255,255,255,.025); }
.auth-card { align-self: center; max-width: 440px; width: 100%; padding: 50px; margin: auto; }
.auth-card .button + .button, .identity-review + .button, .identity-review ~ .button { margin-top: 10px; }
.divider { display: flex; align-items: center; gap: 12px; margin: 24px 0 14px; color: var(--muted); font-size: 12px; }
.divider::before, .divider::after { content:""; height:1px; flex:1; background:var(--line); }
.auth-link { display: block; margin: 18px auto 0; }
.onboarding-card { width: min(700px,100%); margin: 50px auto; padding: 38px; border-radius: 26px; background: white; box-shadow: var(--shadow); }
.onboarding-card.crest-step { width: min(1120px,100%); padding: 46px 64px; }
.onboarding-progress { height: 7px; margin: -10px 0 34px; overflow: hidden; border-radius: 999px; background: #ebeee9; }
.onboarding-progress span { display: block; height: 100%; border-radius: inherit; background: var(--green); }
.onboarding-actions { display: flex; justify-content: space-between; margin-top: 28px; }
.field-label { display: grid; gap: 8px; margin-top: 20px; font-size: 13px; font-weight: 850; }
.field { width: 100%; min-height: 50px; border: 1px solid var(--line); border-radius: 13px; padding: 0 14px; font: inherit; }
.field-help { display: flex; justify-content: space-between; margin-top: 7px; color: var(--muted); font-size: 11px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.crest-builder { display: grid; grid-template-columns: 1fr 1.2fr; gap: 48px; align-items: center; margin-top: 34px; }
.crest-stage { display: grid; place-items: center; min-height: 420px; border-radius: 32px; background: #f1f2ed; }
.crest { position: relative; display: grid; place-items: center; overflow: hidden; background: var(--crest); color: var(--symbol); clip-path: polygon(50% 0,92% 16%,85% 72%,50% 100%,15% 72%,8% 16%); box-shadow: inset 0 0 0 8px rgba(255,255,255,.18); }
.crest > .crest-symbol-wrap { position: relative; z-index: 2; display: grid; place-items: center; width: 62%; height: 62%; color: var(--symbol); }
.crest i { position: absolute; z-index: 1; display: block; background: var(--pattern); opacity: .72; }
.crest.pattern-stripe i { width: 150%; height: 22%; transform: rotate(-28deg); }
.crest.pattern-split i { width: 50%; height: 100%; right: 0; }
.crest.pattern-plain i { display: none; }
.crest.large { width: 220px; height: 260px; font-size: 76px; }
.crest.medium { width: 90px; height: 100px; font-size: 38px; }
.crest-controls h3 { margin: 0; font-size: 18px; }
.swatches, .symbol-list { display: flex; flex-wrap: wrap; gap: 12px; margin: 11px 0 24px; }
.swatch { width: 48px; height: 48px; border: 4px solid white; border-radius: 50%; background: var(--swatch); box-shadow: 0 0 0 1px var(--line); }
.swatch.active { box-shadow: 0 0 0 3px var(--green); }
.custom-color { position: relative; display: grid; place-items: center; width: 48px; height: 48px; overflow: hidden; border: 4px solid white; border-radius: 50%; background: conic-gradient(#e84855,#f4b942,#78c850,#32a5c7,#6457a6,#e84855); box-shadow: 0 0 0 1px var(--line); cursor: pointer; }
.custom-color::before { content:""; position:absolute; inset:7px; border-radius:50%; background:white; }
.custom-color input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.custom-color span { position:relative; z-index:1; color:var(--ink); font-size:22px; font-weight:700; line-height:1; }
.custom-color.active { box-shadow: 0 0 0 3px var(--green); }
.symbol-list button { min-width: 58px; height: 52px; padding: 0 14px; border: 1px solid var(--line); border-radius: 14px; background: white; font-weight: 900; }
.symbol-list button.active { border-color: var(--green); background: var(--soft-green); color: var(--green); }
.tennis-symbol-list { flex-wrap: nowrap; }
.tennis-symbol-list button { display: grid; place-items: center; width: 58px; min-width: 58px; padding: 10px; color: var(--ink); }
.crest-symbol-art { display: block; width: 100%; height: 100%; background: currentColor; -webkit-mask: var(--symbol-src) center / contain no-repeat; mask: var(--symbol-src) center / contain no-repeat; }
.invalid-card { border-color: #d77a59; }
.validation-message, .loss-callout { margin: 12px 0 0; color: #a33d2f; font-weight: 700; }
.locked-label { color: var(--muted); font-size: 13px; font-weight: 800; }
.bench-review { margin-top: 12px; }
.bench-review > div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-top: 1px solid var(--line); }
.bench-review span { color: var(--muted); }
.identity-review { display: flex; align-items: center; gap: 18px; margin: 22px 0; padding: 18px; border-radius: 18px; background: #f4f5f1; }
.identity-review h2, .identity-review p { margin-bottom: 2px; }

.narrow-page { max-width: 840px; margin: 0 auto; }
.settings-list { overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: white; }
.settings-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px; border-top: 1px solid var(--line); }
.settings-row:first-child { border-top: 0; }
.settings-row p { margin: 3px 0 0; color: var(--muted); font-size: 13px; }
.connected { color: var(--green); font-size: 12px; font-weight: 900; }
.danger-link { display: block; margin: 24px auto; border: 0; background: transparent; color: #a13b32; font-weight: 850; }
.settings-section { margin-top: 26px; }
.settings-section > h2 { margin: 0 0 10px; font-size: 17px; }
.settings-select-label { flex: 0 0 auto; }
.settings-select { min-width: 132px; min-height: 42px; padding: 0 36px 0 12px; border: 1px solid var(--line); border-radius: 11px; background: white; color: var(--ink); font: inherit; font-weight: 750; }
.settings-links .settings-row { width: 100%; border-right: 0; border-bottom: 0; border-left: 0; background: white; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.settings-links .settings-row:first-child { border-top: 0; }
.settings-links .settings-row b { color: var(--muted); font-size: 24px; font-weight: 400; }

.site-footer { padding: 28px max(24px,calc((100% - 1200px) / 2)); border-top: 1px solid var(--line); background: #f3f2eb; color: var(--muted); }
.site-footer-links { display: flex; flex-wrap: wrap; gap: 10px 22px; }
.site-footer button { border: 0; padding: 0; background: transparent; color: var(--ink); font: inherit; font-size: 13px; font-weight: 750; cursor: pointer; }
.site-footer p { margin: 18px 0 0; font-size: 12px; }

.legal-page { min-height: 100dvh; padding: 22px 28px 54px; background: #f3f2eb; }
.legal-header { display: flex; align-items: center; justify-content: space-between; width: min(940px,100%); margin: 0 auto 18px; }
.legal-panel { width: min(940px,100%); margin: 0 auto; padding: clamp(28px,5vw,58px); border: 1px solid var(--line); border-radius: 24px; background: white; }
.legal-panel h1 { margin: 8px 0 5px; font-size: clamp(36px,5vw,58px); }
.legal-draft { display: inline-flex; margin: 0; padding: 7px 10px; border-radius: 999px; background: #fff1d8; color: #865c16; font-size: 12px; font-weight: 800; }
.legal-updated { color: var(--muted); font-size: 13px; }
.legal-notice { margin: 22px 0; padding: 14px 16px; border-radius: 12px; background: var(--soft-green); color: var(--green-dark); font-weight: 700; }
.legal-copy { max-width: 760px; margin-top: 34px; }
.legal-copy > p { color: var(--muted); font-size: 18px; line-height: 1.6; }
.legal-copy section { margin-top: 28px; }
.legal-copy h2 { margin-bottom: 8px; font-size: 20px; }
.legal-copy section p { margin: 0; color: #45534c; line-height: 1.7; }
.legal-copy section p + p { margin-top: 10px; }
.legal-copy ul { margin: 10px 0 0; padding-left: 22px; color: #45534c; }
.legal-copy li { margin-top: 8px; line-height: 1.65; }

.cookie-banner { position: fixed; z-index: 140; right: 20px; bottom: 20px; left: 20px; display: flex; align-items: center; justify-content: space-between; gap: 28px; max-width: 1120px; margin: auto; padding: 20px 22px; border: 1px solid #cbd8cf; border-radius: 18px; background: white; box-shadow: 0 20px 60px rgba(17,43,32,.2); }
.cookie-banner strong { display: block; margin-bottom: 5px; }
.cookie-banner p { max-width: 720px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.cookie-actions { display: flex; align-items: center; gap: 9px; flex: 0 0 auto; }
.cookie-actions .button { min-height: 42px; white-space: nowrap; }
.cookie-modal-shell { position: fixed; z-index: 160; inset: 0; display: grid; place-items: center; padding: 18px; }
.cookie-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(9,25,18,.55); }
.cookie-modal { position: relative; width: min(620px,100%); max-height: calc(100dvh - 36px); overflow: auto; padding: 26px; border-radius: 22px; background: white; box-shadow: 0 25px 80px rgba(0,0,0,.28); }
.cookie-modal header { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.cookie-modal h2 { margin: 0; }
.cookie-modal > p { color: var(--muted); line-height: 1.5; }
.icon-button { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 50%; background: white; color: var(--ink); font-size: 24px; cursor: pointer; }
.cookie-option { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 17px 0; border-top: 1px solid var(--line); }
.cookie-option p { margin: 4px 0 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.cookie-option input { width: 22px; height: 22px; accent-color: var(--green); }
.cookie-on { padding: 6px 9px; border-radius: 999px; background: var(--soft-green); color: var(--green); font-size: 12px; font-weight: 850; }
.cookie-modal .cookie-actions { margin-top: 22px; flex-wrap: wrap; }
.cookie-modal [data-cookie-reject],
.cookie-modal [data-cookie-accept] { min-width: 152px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

@media (max-width: 680px) {
  .site-footer { padding: 24px 18px 98px; }
  .site-footer-links { display: grid; gap: 15px; }
  .site-footer button { text-align: left; }
  .legal-page { padding: 14px 14px 30px; }
  .legal-panel { padding: 26px 20px; border-radius: 18px; }
  .settings-row { align-items: flex-start; }
  .settings-select { min-width: 116px; }
  .cookie-banner { right: 12px; bottom: 12px; left: 12px; display: grid; gap: 16px; }
  .cookie-actions { width: 100%; }
  .cookie-banner .cookie-actions .button { flex: 1; }
  .cookie-modal { padding: 22px 18px; }
  .cookie-modal .cookie-actions { display: grid; }
  .cookie-modal [data-cookie-reject],
  .cookie-modal [data-cookie-accept] { width: 100%; min-width: 0; }
}
.accordion { display: grid; gap: 10px; }
.accordion-item { border: 1px solid var(--line); border-radius: 16px; background: white; }
.accordion-item > button { width: 100%; display: flex; justify-content: space-between; padding: 18px; border: 0; background: transparent; color: inherit; text-align: left; }
.accordion-item > p { margin: 0; padding: 0 18px 18px; color: var(--muted); line-height: 1.55; }
.help-table { margin: 0 18px 18px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; }
.help-table-row { display: grid; grid-template-columns: 1.7fr repeat(3,.65fr); align-items: center; gap: 8px; padding: 9px 10px; border-top: 1px solid var(--line); font-size: 11px; }
.help-table-row.header { border-top: 0; background: #eef0eb; color: var(--muted); font-weight: 900; text-transform: uppercase; }
.help-table.two-column .help-table-row { grid-template-columns: 2fr 1fr; }
.help-table-title { margin: 14px 18px 7px; }
.accordion-item .field-help { padding: 0 18px 18px; }
.points-mini { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; overflow: hidden; margin: 0 18px 18px; border-radius: 12px; background: var(--line); }
.points-mini span { display: flex; justify-content: space-between; padding: 11px; background: #f7f8f5; font-size: 12px; }

.admin-page { min-height: 100dvh; display: grid; grid-template-columns: 230px 1fr; background: #f4f5f1; }
.admin-sidebar { padding: 24px 16px; background: var(--ink); color: white; }
.admin-sidebar .auth-brand { margin: 0 0 30px; }
.admin-sidebar button { width: 100%; margin-bottom: 5px; padding: 12px; border: 0; border-radius: 10px; background: transparent; color: rgba(255,255,255,.68); text-align: left; font-weight: 750; }
.admin-sidebar button.active { background: rgba(255,255,255,.1); color: white; }
.admin-main { padding: 36px; }
.admin-metrics { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.admin-metrics article { padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: white; }
.admin-metrics span, .admin-metrics strong { display: block; }
.admin-metrics span { color: var(--muted); font-size: 12px; }
.admin-metrics strong { margin-top: 6px; font-size: 28px; }
.admin-table { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: white; }
.admin-row { display: grid; grid-template-columns: 1fr 1.5fr 1fr auto; align-items: center; gap: 12px; padding: 13px 16px; border-top: 1px solid var(--line); font-size: 13px; }
.admin-row.header { border: 0; background: #e8ebe6; color: var(--muted); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.admin-override { display: flex; justify-content: space-between; gap: 24px; align-items: end; padding: 22px; border: 1px solid #e8c6a3; border-radius: 18px; background: #fff8ee; }
.admin-override p { max-width: 700px; margin-bottom: 0; color: var(--muted); }
.admin-actions { display: flex; gap: 8px; flex-shrink: 0; }
.state-lab { display: flex; flex-wrap: wrap; gap: 6px; margin: 24px 0; padding: 10px; border: 1px dashed var(--line); border-radius: 12px; }
.state-lab span { padding: 8px; color: var(--muted); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.state-lab button { border: 0; border-radius: 8px; padding: 8px; background: #e9ece7; font-size: 11px; }

.bottom-nav {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 20;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  height: calc(68px + env(safe-area-inset-bottom));
  padding-bottom: env(safe-area-inset-bottom);
  border-top: 1px solid var(--line);
  background: rgba(255,254,251,.97);
  backdrop-filter: blur(14px);
}
.bottom-nav button { border: 0; background: transparent; color: var(--muted); font-size: 11px; font-weight: 750; }
.bottom-nav button span { display: block; margin-bottom: 3px; font-size: 20px; }
.bottom-nav button.active { color: var(--green); }

.prototype-controls {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 30;
  display: none;
  gap: 6px;
  align-items: center;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255,255,255,.96);
  box-shadow: var(--shadow);
}
.prototype-controls span { padding: 0 6px; color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.prototype-controls button { border: 0; border-radius: 9px; padding: 8px 10px; background: #eef0eb; color: var(--ink); font-size: 12px; font-weight: 800; }

.empty { padding: 60px 20px; text-align: center; color: var(--muted); }

@media (max-width: 779px) {
  .app-shell { padding-top: 68px; }
  .app-shell.auth-shell { padding-top: 0; }
  .topbar { position: fixed; left: 0; right: 0; top: 0; }
  .bottom-nav { min-height: calc(76px + env(safe-area-inset-bottom)); }
  .bottom-nav button { padding: 8px 4px 12px; line-height: 1.15; }
  .three-col { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .metric { padding: 14px; }
  .metric strong { font-size: 23px; }
  .draw-board { grid-template-columns: 1fr; }
  .tournament-explorer .section-head { align-items: start; }
  .lifecycle-tabs button { min-width: 0; padding: 0 6px; font-size: 12px; }
  .archive-tools { align-items: stretch; flex-direction: column; }
  .archive-tools label, .archive-tools select { width: 100%; }
  .tour-filter { width: 100%; }
  .tour-filter button { flex: 1; min-width: 0; }
  .completed-card-head { grid-template-columns: 46px 1fr; }
  .completed-card-head .event-mark { width: 46px; height: 52px; }
  .completed-card-head .status-chip { grid-column: 2; justify-self: start; }
  .completed-results { grid-template-columns: 1fr; }
  .tournament-context { align-items: start; flex-direction: column; gap: 4px; }
  .tournament-context h1 { font-size: 34px; }
  .draw-toolbar { align-items: stretch; flex-direction: column; }
  .draw-meta-row { align-items: stretch; flex-direction: column; }
  .compact-half-filter { align-self: flex-start; }
  .round-jump, .draw-half-filter { width: 100%; }
  .draw-half-filter button { flex: 1; }
  .draw-page { padding-left: 14px; padding-right: 14px; }
  .draw-sticky-head { width: calc(100% + 14px); border-radius: 18px 0 0 0; }
  .draw-viewport { margin-right: -14px; border-radius: 0 0 0 18px; }
  .bracket-card { left: calc(var(--x) + 6px); width: 188px; }
  .draw-key span:last-child { flex-basis: 100%; }
  .advance-card, .profile-hero, .admin-override { align-items: stretch; flex-direction: column; }
  .result-metrics, .ranking-summary { grid-template-columns: 1fr; }
  .completed-winners { grid-template-columns: 1fr; }
  .result-metrics { gap: 6px; }
  .table-row { grid-template-columns: 1.25fr .85fr .55fr .7fr; gap: 6px; padding: 12px 10px; font-size: 11px; }
  .table-row.header { font-size: 9px; }
  .auth-page, .onboarding-page { padding: 18px; }
  .auth-grid { display: block; min-height: auto; }
  .auth-visual { min-height: 380px; padding: 34px 28px; }
  .auth-visual h1 { font-size: 48px; }
  .auth-card { padding: 30px 24px; }
  .onboarding-card { margin: 16px auto; padding: 24px; }
  .onboarding-card.crest-step { padding: 24px; }
  .form-grid, .crest-builder { grid-template-columns: 1fr; }
  .crest-builder { gap: 24px; margin-top: 24px; }
  .crest-stage { min-height: 220px; }
  .crest.large { width: 160px; height: 185px; }
  .tennis-symbol-list { flex-wrap: wrap; }
  .settings-row { align-items: flex-start; }
  .admin-page { display: block; }
  .admin-sidebar { padding: 16px; }
  .admin-sidebar .auth-brand { margin-bottom: 12px; }
  .admin-sidebar button { display: inline-block; width: auto; }
  .admin-main { padding: 22px 18px; }
  .admin-metrics { grid-template-columns: 1fr 1fr 1fr; }
  .admin-row { grid-template-columns: 1fr; }
  .admin-row.header { display: none; }
  .admin-actions { flex-direction: column; }
}

@media (min-width: 780px) {
  body { padding: 24px; }
  .app-shell { min-height: calc(100dvh - 48px); border-radius: 28px; overflow: clip; box-shadow: var(--shadow); }
  .topbar { padding: 0 34px; }
  .page { padding: 34px; }
  .hero { padding: 42px; }
  .cards.two-col, .bench-grid { grid-template-columns: 1fr 1fr; }
  .selection-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .75fr); gap: 24px; align-items: start; }
  .selection-layout .sticky-action { position: sticky; top: 92px; bottom: auto; margin: 0; }
  .bottom-nav { left: 50%; right: auto; width: min(1180px, calc(100% - 48px)); transform: translateX(-50%); border-radius: 0 0 28px 28px; }
  body.debug .prototype-controls { display: flex; bottom: 92px; }
}

/* Passing Shot player experience */
:root {
  --ink: #16221c;
  --muted: #637068;
  --line: #dce2dd;
  --paper: #fff;
  --canvas: #f3f5f1;
  --green: #146b45;
  --green-dark: #0e5134;
  --soft-green: #eaf4ee;
  --soft-yellow: #f6f2df;
  --clay: #c65f3f;
  --shadow: 0 18px 50px rgba(22,34,28,.08);
  --radius: 14px;
}

body { font-size: 16px; line-height: 1.45; }
.app-shell { max-width: 1240px; }
.topbar { position: sticky; height: 68px; padding: 0 22px; }
.brand { cursor: pointer; }
.desktop-nav { display: none; align-self: stretch; align-items: center; gap: 4px; }
.desktop-nav button { height: 100%; padding: 0 18px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--muted); font-weight: 750; cursor: pointer; }
.desktop-nav button.active { border-color: var(--green); color: var(--ink); }
.top-actions { position: relative; }
.avatar { cursor: pointer; }
.account-menu { position: absolute; top: 48px; right: 0; z-index: 30; width: 210px; overflow: hidden; padding: 6px; border: 1px solid var(--line); border-radius: 14px; background: white; box-shadow: 0 18px 44px rgba(22,34,28,.16); }
.account-menu button { display: block; width: 100%; min-height: 42px; padding: 0 12px; border: 0; border-radius: 9px; background: transparent; color: var(--ink); text-align: left; font-weight: 700; cursor: pointer; }
.account-menu button:hover { background: #f2f5f2; }
.account-menu .sign-out { color: #97392e; }

.page { padding: 28px 20px 48px; }
.page-stack { display: grid; gap: 22px; }
.page-header h1, .event-header h1 { margin: 0; font-size: clamp(30px,5vw,42px); line-height: 1.08; letter-spacing: -.035em; }
.page-header p, .event-header p { margin: 5px 0 0; color: var(--muted); }
h1 { max-width: none; font-size: clamp(30px,5vw,42px); line-height: 1.08; }
h2 { font-size: 20px; line-height: 1.2; }
h3 { font-size: 15px; }
.eyebrow { color: var(--muted); font-size: 12px; letter-spacing: 0; text-transform: none; }
.lede { max-width: 680px; font-size: 15px; }
.section { margin-top: 26px; }
.page-stack > .section, .page-stack > .tournament-explorer { margin-top: 0; }
.card { padding: 16px; border-radius: var(--radius); box-shadow: none; }
.button { min-height: 46px; border-radius: 11px; padding: 0 17px; font-weight: 750; }
.button.accent { background: var(--green); color: white; }
.button.secondary { background: white; color: var(--ink); }
.button.ghost { border-color: var(--line); color: var(--ink); }
.text-button { color: var(--green); }

.tournament-explorer { min-width: 0; }
.outstanding-action { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 14px; padding: 15px 16px; border: 1px solid #e3c978; border-left: 4px solid #c58a14; border-radius: 14px; background: #fff9e9; }
.outstanding-action-icon { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #f1d98a; color: #6d4b08; font-size: 18px; font-weight: 900; }
.outstanding-action-copy { min-width: 0; }
.outstanding-action h2, .outstanding-action p { margin: 0; }
.outstanding-action h2 { font-size: 16px; }
.outstanding-action p { margin-top: 3px; color: var(--muted); font-size: 14px; }
.outstanding-action .outstanding-action-label { margin: 0 0 3px; color: #795408; font-size: 11px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.outstanding-action .button { flex: 0 0 auto; }
.lifecycle-tabs { max-width: 560px; margin: 0 0 16px; background: #e9eeea; }
.lifecycle-tabs button { font-size: 14px; text-transform: none; }
.cards { gap: 10px; }
.tournament-card { grid-template-columns: 48px minmax(0,1fr) auto; gap: 13px; min-height: 90px; }
.tournament-card-copy { min-width: 0; }
.tournament-card-copy h3 { margin: 0; font-size: 16px; }
.tournament-type { display: block; margin-top: 4px; color: var(--muted); font-size: 13px; font-weight: 650; }
.event-mark { width: 48px; height: 52px; border-radius: 12px; background: #e7efe9; color: var(--green-dark); font-size: 13px; }
.card-title-row { justify-content: space-between; gap: 8px; }
.card-title-row h3 { font-size: 16px; }
.status-chip { min-height: 25px; padding: 0 9px; background: #eef2ef; color: var(--muted); font-size: 11px; font-weight: 750; text-transform: none; white-space: nowrap; }
.active-card .status-chip { background: var(--soft-green); color: var(--green-dark); }
.warning-card .status-chip { background: #fff3e5; color: #945017; }
.tournament-card p { margin-top: 5px; font-size: 13px; }
.mini-button { min-height: 40px; border-radius: 10px; background: var(--green); font-size: 13px; cursor: pointer; }
.completed-grid { grid-template-columns: 1fr; }
.completed-card { gap: 13px; }
.completed-card-head { grid-template-columns: 48px 1fr auto; }
.completed-results div { padding: 10px 12px; background: #f5f7f4; }
.completed-results span { font-size: 11px; font-weight: 650; text-transform: none; }

.event-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.event-header-copy { min-width: 0; }
.event-title-row { display: flex; align-items: center; gap: 12px; }
.event-title-row h1 { min-width: 0; }
.tournament-tabs { margin: 18px 0; overflow-x: auto; }
.tournament-tabs button { flex: 1; white-space: nowrap; }
.tournament-tour-selector { display: flex; width: fit-content; gap: 5px; margin: -6px 0 18px; padding: 4px; border-radius: 12px; background: #e9ece7; }
.tournament-tour-selector button { min-width: 76px; min-height: 38px; border: 0; border-radius: 9px; padding: 0 14px; background: transparent; color: var(--muted); font-weight: 850; }
.tournament-tour-selector button.active { background: white; color: var(--ink); box-shadow: 0 2px 8px rgba(24,35,29,.08); }
.event-header .status-chip { min-height: 27px; padding: 0 10px; }
.event-header .status-chip.is-live { background: var(--green); color: white; box-shadow: none; }
.status-panel { padding: 17px 18px; border: 1px solid var(--line); border-left: 4px solid var(--green); border-radius: 14px; background: white !important; color: var(--ink); }
.status-panel .status-line { gap: 10px; }
.status-panel .status-dot { width: 10px; height: 10px; background: var(--green); box-shadow: none; }
.status-panel h2, .status-panel p { margin: 0; }
.status-panel p { margin: 5px 0 0 20px; color: var(--muted); }
.status-panel.warning { border-left-color: #b6691d; }
.status-panel.warning .status-dot { background: #b6691d; }
.status-panel.pending { border-left-color: #557180; }
.status-panel.pending .status-dot { background: #557180; }
.status-panel.eliminated { border-left-color: #aa4438; }
.status-panel.eliminated .status-dot { background: #aa4438; }
.status-panel.winner { border-left-color: #8b7423; }
.status-panel.winner .status-dot { background: #8b7423; }
.action-panel { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 14px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 14px; background: white; color: var(--ink); }
.action-panel h2, .action-panel p { margin: 0; }
.action-panel h2 { font-size: 16px; }
.action-panel p { margin-top: 3px; color: var(--muted); }
.action-panel .button { flex: 0 0 auto; background: var(--green); color: white; }
.action-panel .inline-player-list { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 8px; }
.action-panel .player-identity { color: var(--ink); font-weight: 750; }
.section-head { align-items: center; }
.section-head h2 { margin: 0; }
.selection-summary { gap: 0; padding: 4px 14px; }
.summary-row { grid-template-columns: 5px 1fr auto; padding: 12px 0; border-bottom: 1px solid #edf0ed; border-radius: 0; background: transparent; }
.summary-row:last-of-type { border-bottom: 0; }
.summary-row .bar { width: 4px; height: 30px; }
.summary-row .state { color: #6d765f; }
.summary-row .player-identity, .bench-option .player-identity { font-weight: 800; }
.compact-empty { padding: 26px 12px; }
.advance-card { margin-top: 16px; padding: 16px 18px; border-color: var(--line); border-radius: 14px; background: #f5f7f4; }
.advance-card h2 { margin: 0; }
.result-rows { display: grid; margin-top: 8px; }
.result-rows > div { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 12px 0; border-top: 1px solid var(--line); }
.result-rows span { color: var(--muted); }
.completed-overview { display: grid; gap: 20px; }
.completed-overview h2 { margin: 0; }
.completed-result-hero { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px; border: 1px solid var(--line); border-left: 5px solid var(--clay); border-radius: 16px; background: #faf8f3; }
.completed-result-hero p { margin: 0 0 5px; color: var(--muted); font-size: 13px; font-weight: 800; }
.completed-result-hero h2 { font-size: 28px; }
.completed-result-hero.not-entered { border-left-color: var(--muted); }
.season-points { flex: 0 0 auto; text-align: right; }
.season-points strong, .season-points span { display: block; }
.season-points strong { font-size: 32px; line-height: 1; }
.season-points span { margin-top: 6px; color: var(--muted); font-size: 12px; font-weight: 700; }
.completed-selection-history { display: grid; gap: 10px; }
.completed-selection-history > h2 { margin-bottom: 2px; }
.selection-history-group { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: white; }
.selection-history-group h3 { margin: 0; padding: 10px 14px; background: #f2f4f1; color: var(--muted); font-size: 12px; }
.selection-history-player { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 66px; padding: 9px 14px; border-top: 1px solid #edf0ed; }
.selection-history-group > div .selection-history-player:first-child { border-top: 0; }
.selection-history-player > strong { color: var(--green); font-size: 13px; }
.selection-history-player.lost { background: #fff8f5; }
.selection-history-player.lost > strong { color: #a34335; }
.completed-winner-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.winner-block { display: grid; align-content: start; gap: 12px; min-height: 110px; }
.winner-block > span { color: var(--muted); font-size: 12px; font-weight: 800; }
.winner-block .player-identity { font-size: 17px; font-weight: 850; }
.winner-team-list { display: flex; flex-wrap: wrap; gap: 12px 18px; }
.winner-team { display: inline-flex; align-items: center; gap: 9px; }

.selection-page .tournament-tour-selector { margin-bottom: 24px; }
.selection-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 18px; margin: 0 0 16px; }
.selection-header p { margin: 5px 0 0; color: var(--muted); }
.selection-header h2, .tournament-context h2, .standings-heading h2 { margin: 0; font-size: 20px; line-height: 1.2; letter-spacing: -.02em; }
.selection-requirements { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0 0 16px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 13px; background: #f7f8f6; color: var(--muted); font-size: 14px; }
.selection-requirements strong { color: var(--ink); }
.progress-track { height: 5px; }
.progress-copy { font-size: 13px; }
.half-tabs { margin: 18px 0 14px; }
.half-tabs button { font-size: 14px; }
.search-label { display: grid; gap: 7px; color: var(--muted); font-size: 13px; font-weight: 700; }
.search { height: 48px; font-size: 16px; }
.match-list { margin-top: 12px; }
.match-card { border-radius: 13px; }
.match-meta { font-size: 12px; }
.player-row { min-height: 58px; }
.player-name { font-size: 15px; }
.pick-toggle { width: 38px; height: 38px; cursor: pointer; }
.sticky-action { border-radius: 14px; }
.sticky-action p { font-size: 13px; }
.selection-count { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.selection-count strong { font-size: 24px; }
.selection-count span { color: var(--muted); font-weight: 700; }
.bench-card { border-radius: 14px; }
.bench-card h2 { margin-bottom: 18px; }
.bench-card h3 { margin: 14px 0 7px; color: var(--muted); }
.protected-picks { margin: 0 0 12px; }
.protected-picks button { min-height: 44px; }

.ranking-tabs { margin: 0; }
.your-position { display: grid; grid-template-columns: 1fr auto auto auto; gap: 18px; align-items: center; padding: 15px 18px; border: 1px solid #bed6c7; border-radius: 14px; background: var(--soft-green); }
.your-position > span { color: var(--muted); }
.your-position strong { font-size: 20px; }
.ranking-list { gap: 0; padding: 0; overflow: hidden; }
.ranking-row { grid-template-columns: 40px 38px minmax(0,1fr) auto; min-height: 66px; padding: 9px 14px; }
.ranking-row.you { border-radius: 0; background: var(--soft-yellow); }
.ranking-row.ranking-head { min-height: 40px; grid-template-columns: 40px minmax(0,1fr) auto; padding: 8px 14px; background: #f0f3f0; color: var(--muted); font-size: 12px; font-weight: 750; }
.mini-crest { display: grid; place-items: center; width: 34px; height: 38px; clip-path: polygon(50% 0,92% 16%,85% 72%,50% 100%,15% 72%,8% 16%); background: var(--green); color: white; font-size: 9px; font-weight: 850; }
.ranking-team { min-width: 0; }
.ranking-team strong, .ranking-team small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ranking-team small { margin-top: 2px; color: var(--muted); font-size: 12px; }
.points { white-space: nowrap; }
.profile-hero { padding: 20px; border-radius: 16px; }
.profile-hero h1 { font-size: clamp(28px,4vw,38px); }
.result-table { border-radius: 14px; }
.table-row.header { text-transform: none; }

.team-identity { display: flex; align-items: center; gap: 30px; padding: 26px; border: 1px solid var(--line); border-radius: 18px; background: white; }
.team-identity .crest.large { width: 150px; height: 176px; }
.team-identity h2 { margin: 0 0 5px; font-size: 28px; }
.team-identity p { margin: 0 0 18px; color: var(--muted); }
.personal-results { padding: 0 16px; }
.personal-result-row { display: grid; grid-template-columns: 96px minmax(0,1fr) auto; width: 100%; gap: 16px; align-items: center; padding: 15px 0; border: 0; border-top: 1px solid var(--line); background: transparent; color: inherit; text-align: left; cursor: pointer; }
.personal-result-row:first-child { border-top: 0; }
.personal-result-row .location-art.thumb, .personal-result-row .production-art.thumb { width: 96px; height: 64px; aspect-ratio: 3 / 2; border-radius: 10px; }
.personal-result-copy { min-width: 0; }
.personal-result-copy strong, .personal-result-copy small { display: block; }
.personal-result-copy strong { font-size: 18px; }
.personal-result-copy small { margin-top: 2px; color: var(--muted); }
.personal-result-row b { white-space: nowrap; }

.auth-visual { background: linear-gradient(145deg,#0c5837,#176b45); }
.auth-visual h1 { font-size: clamp(48px,7vw,82px); }
.auth-visual p { font-size: 20px; }

@media (max-width: 779px) {
  .page { padding: 22px 16px 34px; }
  .page-stack { gap: 18px; }
  .action-panel { align-items: stretch; flex-direction: column; gap: 16px; }
  .action-panel .button { width: 100%; }
  .outstanding-action { grid-template-columns: 32px minmax(0,1fr); align-items: start; gap: 12px; }
  .outstanding-action .button { grid-column: 1 / -1; width: 100%; }
  .tournament-card { grid-template-columns: 44px minmax(0,1fr); }
  .tournament-card .event-mark { width: 44px; height: 48px; }
  .tournament-card .mini-button { grid-column: 2; justify-self: start; min-width: 130px; }
  .card-title-row { align-items: flex-start; flex-direction: column; }
  .completed-card-head { grid-template-columns: 44px 1fr; }
  .completed-card-head .status-chip { grid-column: 2; }
  .selection-header { align-items: stretch; flex-direction: column; }
  .selection-header .button { align-self: flex-start; }
  .selection-requirements { display: grid; gap: 7px; }
  .sticky-action { bottom: 82px; }
  .your-position { grid-template-columns: 1fr auto; gap: 6px 12px; }
  .your-position .text-button { grid-column: 1 / -1; justify-self: start; padding: 4px 0; }
  .ranking-row { grid-template-columns: 32px 34px minmax(0,1fr) auto; padding: 9px 8px; }
  .ranking-row.ranking-head { grid-template-columns: 32px minmax(0,1fr) auto; padding: 8px; }
  .team-identity { align-items: center; flex-direction: column; text-align: center; }
  .team-identity .crest.large { width: 130px; height: 150px; }
  .profile-hero { align-items: center; }
}

@media (min-width: 780px) {
  body { padding: 20px; }
  .app-shell { min-height: calc(100dvh - 40px); border-radius: 22px; padding-bottom: 0; }
  .topbar { padding: 0 32px; }
  .desktop-nav { display: flex; }
  .page { padding: 34px 42px 54px; }
  .bottom-nav { display: none; }
  .cards.two-col { grid-template-columns: 1fr 1fr; }
  .completed-grid { grid-template-columns: 1fr 1fr; }
  .selection-layout { grid-template-columns: minmax(0,1.45fr) 320px; }
}

/* Senior visual direction: identity, event posters, onboarding and rankings */
.brand-lockup {
  --brand-mark-color: #176b45;
  --brand-wordmark-color: #18231d;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  white-space: nowrap;
}
.brand-mark {
  display: block;
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  color: var(--brand-mark-color, #176b45);
}
.brand-mark svg { display: block; width: 100%; height: 100%; }
.brand-mark.is-reversed { --brand-mark-color: #ffffff; }
.brand-wordmark { color: var(--brand-wordmark-color); font-size: 22px; font-weight: 800; letter-spacing: -.035em; line-height: 1; }
.brand-lockup.is-reversed { --brand-mark-color: #ffffff; --brand-wordmark-color: #ffffff; }
.brand-icon-specimen { display: grid; place-items: center; width: 128px; height: 128px; border-radius: 28px; background: #176b45; }
.brand-icon-specimen .brand-mark { width: 64px; height: 64px; color: #ffffff; }
.public-brand { display: flex; align-items: center; }
.admin-mark { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: #176b45; color: white; font-size: 13px; font-weight: 800; }

.public-landing { min-height: 100dvh; padding: 22px 28px 34px; background: #f3f2eb; }
.public-header, .onboarding-header { display: flex; align-items: center; justify-content: space-between; width: min(1200px,100%); min-height: 58px; margin: 0 auto 18px; }
.public-header > div:last-child { display: flex; align-items: center; gap: 8px; }
.public-header .language-link, .onboarding-header .language-link { min-width: 44px; min-height: 40px; border-color: #ccd5ce; background: transparent; }
.sign-in-link, .public-back { min-height: 40px; border: 0; background: transparent; color: var(--green); font-weight: 800; cursor: pointer; }
.public-landing .auth-grid { grid-template-columns: minmax(0,58fr) minmax(360px,42fr); min-height: min(720px,calc(100dvh - 118px)); max-width: 1200px; border: 1px solid #d8ddd7; border-radius: 28px; box-shadow: 0 22px 70px rgba(17,43,32,.11); }
.public-landing .auth-visual { display: grid; grid-template-rows: auto minmax(320px,1fr); min-height: 0; padding: 52px 52px 0; background: #103f32; }
.public-copy { position: relative; z-index: 2; max-width: 670px; }
.public-copy .entry-kicker { margin-bottom: 14px; color: #d8ef5a; font-size: 13px; font-weight: 850; letter-spacing: .02em; }
.public-copy h1 { max-width: 620px; margin-bottom: 18px; color: white; font-size: clamp(48px,5.5vw,74px); line-height: .98; letter-spacing: -.055em; }
.public-copy > p:last-child { max-width: 625px; margin: 0; color: rgba(255,255,255,.82); font-size: 18px; line-height: 1.55; }
.public-landing .auth-card { align-self: center; max-width: 480px; padding: 50px 48px; }
.entry-kicker { margin: 0 0 8px; color: var(--green); font-size: 13px; font-weight: 800; }
.auth-card h2 { margin-bottom: 10px; font-size: 32px; letter-spacing: -.035em; }
.entry-copy { margin: 0 0 25px; color: var(--muted); line-height: 1.55; }
.auth-card .field-label { margin-top: 16px; }
.password-field { position: relative; display: block; }
.password-field .field { padding-right: 84px; }
.password-field button { position: absolute; right: 6px; top: 50%; min-width: 66px; min-height: 36px; border: 0; border-radius: 8px; background: #eef3ef; color: var(--green); font: inherit; font-size: 12px; font-weight: 800; transform: translateY(-50%); cursor: pointer; }
.field.invalid { border-color: #ad3f34; box-shadow: 0 0 0 3px rgba(173,63,52,.12); }
.field-error { display: block; margin-top: 6px; color: #9b352c; font-size: 12px; font-weight: 700; }
.auth-card .button.block { margin-top: 14px; }
.google-button { display: flex; align-items: center; justify-content: center; gap: 11px; width: 100%; min-height: 48px; border: 1px solid #cfd6d1; border-radius: 11px; background: white; color: var(--ink); font: inherit; font-weight: 750; cursor: pointer; transition: border-color .15s, background .15s, transform .15s; }
.google-button:hover { border-color: #aebbb2; background: #fafbf9; }
.google-button:active { transform: translateY(1px); }
.google-button:focus-visible { outline: 3px solid rgba(20,107,69,.25); outline-offset: 2px; }
.google-mark { width: 20px; height: 20px; flex: 0 0 auto; }
.auth-card .google-button + .button { margin-top: 10px; }

.location-art { position: relative; overflow: hidden; background: #dfe8de; }
.location-art svg { display: block; width: 100%; height: 100%; }
.production-art img { display: block; width: 100%; height: 100%; object-fit: cover; }
.location-sky { fill: #dce9df; }
.location-sun { fill: #d8ef5a; }
.location-horizon { fill: #9fbeaa; }
.landmark { fill: none; stroke: #174c38; stroke-width: 4; stroke-linejoin: round; stroke-linecap: round; }
.poster-court { fill: #cd6f50; }
.poster-court.grass { fill: #70a45f; }
.poster-court.hard { fill: #4c8290; }
.court-lines-art { fill: none; stroke: rgba(255,255,255,.82); stroke-width: 1.6; }
.poster-racket { fill: none; stroke: #fff5dc; stroke-width: 3; stroke-linecap: round; opacity: .95; }
.poster-racket path:not(:first-of-type) { stroke-width: 1; }
.poster-ball { fill: #d8ef5a; stroke: #174c38; stroke-width: 2; }
.poster-flight { fill: none; stroke: #c45b39; stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 4 5; }
.location-art.hero { display: block; align-self: stretch; width: calc(100% + 104px); height: 100%; min-height: 340px; margin: 0 0 0 -52px; border-radius: 0; background: #103f32; }
.production-art.hero::after { content:""; position:absolute; inset:0 0 auto; z-index:1; width:auto; height:58px; border:0; border-radius:0; background:linear-gradient(180deg,#103f32 0%,rgba(16,63,50,.72) 38%,rgba(16,63,50,0) 100%); box-shadow:none; pointer-events:none; }
.production-art.hero img { position: absolute; inset: 0; object-position: 65% 55%; }
.location-art.hero svg { object-fit: cover; }
.location-art.hero .landmark { stroke-width: 3; }
.location-rome .colosseum-shell { fill: rgba(211,145,103,.38); stroke-width: 4; }
.location-rome .colosseum-arcades { stroke-width: 2.6; }
.location-art.thumb { width: 118px; height: 78px; border-radius: 11px; }
.production-art.thumb { width: 126px; height: auto; aspect-ratio: 3 / 2; border-radius: 12px; }
.location-art.thumb .poster-racket { display: none; }
.location-art.thumb .landmark { stroke-width: 5; }
.location-art.header { position: absolute; inset: 0 0 0 auto; width: 52%; height: 100%; opacity: .72; }
.production-art.header { position: relative; inset: auto; order: 3; flex: 0 0 min(42%,360px); width: min(42%,360px); height: auto; aspect-ratio: 3 / 2; border-radius: 14px; opacity: 1; }
.production-art.header::after { display: none; }
.location-art.header::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#f8faf7 0%,rgba(248,250,247,.72) 25%,transparent 75%); }
.location-art.header .poster-racket { display: none; }
.location-paris .location-sky { fill: #e7dfd2; }
.location-paris .location-horizon { fill: #d0ab8a; }
.location-london .location-sky { fill: #d9e4e4; }
.location-london .location-horizon { fill: #97b79c; }
.location-new-york .location-sky { fill: #dbe4ed; }
.location-new-york .location-horizon { fill: #9bb1bf; }
.location-indian-wells .location-sky { fill: #eee1c5; }
.location-indian-wells .location-horizon { fill: #c0a878; }
.location-miami .location-sky { fill: #d8eeee; }
.location-miami .location-horizon { fill: #85beb7; }
.location-tokyo .location-sky { fill: #ecdfe1; }
.location-tokyo .location-horizon { fill: #b99fa7; }
.location-madrid .location-sky { fill: #eee2ca; }
.location-madrid .location-horizon { fill: #d2b57f; }
.location-monte-carlo .location-sky { fill: #dbeaf0; }
.location-monte-carlo .location-horizon { fill: #83b8b8; }
.tournament-card { grid-template-columns: 126px minmax(0,1fr) auto; min-height: 118px; }
.completed-card-head { grid-template-columns: 126px 1fr auto; }
.event-header-art { position: relative; min-height: 126px; overflow: hidden; align-items: flex-end; padding: 22px 24px; border: 1px solid var(--line); border-radius: 16px; background: #f8faf7; }
.event-header-art > div:not(.location-art), .event-header-art > .status-chip { position: relative; z-index: 2; }
.production-event-header { min-height: 236px; align-items: center; }
.production-event-header > div { flex: 1 1 auto; }

.player-row { grid-template-columns: 34px 64px minmax(0,1fr) auto; min-height: 82px; }
.player-row:not(.has-portrait) .player-info { grid-column: 2 / 4; }
.player-row:not(.has-portrait) .pick-toggle { grid-column: 4; }
.player-portrait { display: block; object-fit: cover; object-position: center; border: 1px solid #d8ddd8; background: #e9eee9; }
.player-portrait.portrait-64 { width: 64px; height: 64px; border-radius: 14px; }
.player-portrait.portrait-96 { width: 96px; height: 96px; border-radius: 18px; }
.player-portrait.portrait-20 { width: 20px; height: 20px; border-radius: 6px; }
.player-portrait.portrait-32 { width: 32px; height: 32px; border-radius: 8px; }
.player-portrait.portrait-36 { width: 36px; height: 36px; border-radius: 9px; }
.player-portrait.portrait-40 { width: 40px; height: 40px; border-radius: 10px; }
.player-identity { display: inline-flex; min-width: 0; align-items: center; gap: 8px; }
.player-identity > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.player-identity.compact { gap: 6px; }
.player-portrait-placeholder { position: relative; display: block; width: var(--portrait-size); min-width: var(--portrait-size); height: var(--portrait-size); overflow: hidden; border: 1px solid #d4dad6; border-radius: 22%; background: #f5f7f5; }
.player-portrait-placeholder::before, .player-portrait-placeholder::after { content:""; position:absolute; left:50%; background:#aeb7b1; transform:translateX(-50%); }
.player-portrait-placeholder::after { bottom:-2%; width:72%; height:35%; border-radius:55% 55% 16% 16%; }
.player-portrait-placeholder.male::before { top:17%; width:29%; height:40%; border-radius:45% 45% 40% 40%; }
.player-portrait-placeholder.female::before { top:14%; width:48%; height:46%; clip-path:polygon(30% 0,70% 0,88% 17%,100% 78%,72% 70%,68% 100%,32% 100%,28% 70%,0 78%,12% 17%); }
.bracket-player, .bracket-player.has-portrait { grid-template-columns: 18px 20px minmax(0,1fr) max-content; }
.location-art.mini { flex: 0 0 48px; width: 48px; height: 32px; border-radius: 7px; }
.tournament-identity { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.tournament-identity > span:last-child { display: grid; gap: 2px; }
.tournament-identity small { color: var(--muted); font-size: 12px; }
.table-row .tournament-identity, .personal-results .tournament-identity { margin-bottom: 0; }
.selected-player-portraits { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 4px 0 14px; }
.selected-player-portraits > div { min-width: 0; }
.selected-player-portraits img { width: 100%; height: auto; aspect-ratio: 1; }
.selected-player-portraits span { display: block; margin-top: 5px; overflow: hidden; color: var(--ink); font-size: 11px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.selected-player-portraits.single { grid-template-columns: 1fr; }
.selected-player-portraits.single > div { display: grid; grid-template-columns: 72px minmax(0,1fr); align-items: center; gap: 12px; }
.selected-player-portraits.single img { width: 72px; height: 72px; }
.selected-player-portraits.single .player-portrait-placeholder { --portrait-size:72px !important; }
.selected-player-portraits.single span { margin-top: 0; overflow: visible; font-size: 13px; text-overflow: clip; white-space: normal; }

.onboarding-page { padding: 22px 28px 48px; background: #f3f2eb; }
.onboarding-header { margin-bottom: 8px; }
.onboarding-card { margin: 20px auto; border: 1px solid #d9dfda; border-radius: 22px; box-shadow: 0 20px 55px rgba(22,34,28,.09); }
.step-progress { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 32px; color: var(--muted); font-size: 13px; font-weight: 750; }
.step-progress > div { display: grid; grid-template-columns: repeat(4,42px); gap: 6px; }
.step-progress i { display: block; height: 5px; border-radius: 999px; background: #e3e8e3; }
.step-progress i.active { background: var(--green); }
.onboarding-card > h1 { margin-bottom: 12px; }
.onboarding-card .google-button { margin-top: 18px; }

.your-position > div { display: flex; justify-content: flex-end; gap: 8px; }
.your-position .button.secondary { min-height: 38px; padding: 0 13px; }
.ranking-list { border-radius: 16px; }
.ranking-row { grid-template-columns: 78px 48px minmax(180px,1fr) minmax(140px,.7fr) 138px 96px; gap: 12px; min-height: 72px; padding: 10px 16px; }
.ranking-row.ranking-head { grid-template-columns: 78px 48px minmax(180px,1fr) minmax(140px,.7fr) 138px 96px; gap: 12px; min-height: 46px; }
.ranking-head > span:first-child { grid-column: 1; }
.ranking-head .team-heading { grid-column: 2 / 4; }
.ranking-head .desktop-manager { grid-column: 4; }
.ranking-head .ranking-counted { grid-column: 5; }
.ranking-head > span:last-child { grid-column: 6; text-align: right; }
.ranking-crest { position: relative; display: grid; place-items: center; width: 40px; height: 46px; overflow: hidden; background: var(--crest); clip-path: polygon(50% 0,92% 16%,85% 72%,50% 100%,15% 72%,8% 16%); }
.ranking-crest > i { position: absolute; z-index: 1; width: 150%; height: 22%; background: var(--pattern); transform: rotate(-28deg); opacity: .82; }
.ranking-crest > span { position: relative; z-index: 2; display: grid; place-items: center; width: 58%; height: 58%; color: var(--symbol); }
.ranking-row .desktop-manager, .ranking-counted { color: var(--muted); font-size: 13px; }
.ranking-team small { display: none; }
.ranking-gap { display: flex; align-items: center; justify-content: center; gap: 16px; min-height: 54px; padding: 10px 16px; border-bottom: 1px solid var(--line); background: #f8f9f7; color: var(--muted); font-size: 13px; }
.ranking-gap > div { display: flex; gap: 8px; }
.ranking-row.you { box-shadow: inset 4px 0 var(--green); }
.ranking-pagination { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; border-top: 1px solid var(--line); background: #f8f9f7; color: var(--muted); font-size: 13px; font-weight: 700; }
.ranking-pagination > div { display: flex; gap: 8px; }
.ranking-pagination .button { min-height: 38px; padding: 0 13px; }

.standings-page .event-header { margin: 4px 0 0; }
.standings-page .tournament-tabs { margin-bottom: 28px; }
.standings-heading { margin: 0 0 14px; }
.standings-heading h2 { margin: 0; }
.standings-page .ranking-tabs { margin: 0 0 20px; }
.standings-page .info-note { margin: -4px 0 20px; }
.standings-page .ranking-row { min-height: 78px; padding: 13px 18px; }
.standings-page .ranking-row, .standings-page .ranking-row.ranking-head { padding-right: 30px; }
.standings-page .ranking-row.ranking-head { min-height: 48px; padding-top: 10px; padding-bottom: 10px; padding-left: 18px; }
.standings-page .ranking-row, .standings-page .ranking-row.ranking-head { grid-template-columns: 78px 48px minmax(180px,1fr) minmax(140px,.7fr) minmax(190px,.8fr) 132px; }
.standing-entry { border-bottom: 1px solid var(--line); }
.standing-entry:last-child { border-bottom: 0; }
.standing-entry .ranking-row { border-bottom: 0; }
.standing-toggle { position: relative; }
.standing-points { display: grid; grid-template-columns: minmax(0,1fr) 26px; align-items: center; gap: 10px; }
.standing-points .points { text-align: right; }
.ranking-head .points-heading { padding-right: 36px; text-align: right; }
.standings-page .standing-points,
.standings-page .ranking-head .points-heading { margin-right: 18px; }
.standing-chevron { display: flex; align-items: center; justify-content: center; width: 26px; height: 26px; padding-bottom: 2px; border-radius: 50%; background: #edf2ed; color: var(--green); font-size: 20px; font-weight: 750; line-height: 1; }
.standing-entry.expanded .standing-toggle { background: #f7f9f6; }
.standing-breakdown { padding: 18px 22px 20px 96px; border-top: 1px solid var(--line); background: #fbfcfa; }
.standing-breakdown-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-bottom: 16px; }
.standing-breakdown-summary > div { display: grid; grid-template-rows: 20px auto auto; align-content: start; gap: 4px; }
.standing-breakdown-summary span { color: var(--muted); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.standing-breakdown-summary > div > span:first-child { display: flex; align-items: center; min-height: 20px; }
.standing-breakdown-summary .info-tip { display: inline-grid; margin-left: 4px; color: var(--muted); font-size: 11px; line-height: 1; text-transform: none; letter-spacing: 0; vertical-align: middle; }
.standing-breakdown-summary .info-tip .info-tip-glyph { color: inherit; font-size: 11px; font-weight: 800; line-height: 1; letter-spacing: 0; text-transform: lowercase !important; }
.standing-breakdown-summary strong { font-size: 15px; line-height: 1.35; }
.standing-breakdown-summary .standing-result-reason { max-width: 560px; color: var(--muted); font-size: 12px; font-weight: 500; line-height: 1.4; text-transform: none; letter-spacing: 0; }
.standing-picks { display: grid; gap: 8px; }
.standing-mobile-head { display: none; }
.standing-pick-row { display: grid; grid-template-columns: 104px minmax(360px,1fr) 110px 70px; align-items: start; gap: 14px; min-height: 70px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.standing-pick-row.won { border-color: #cee0d4; background: #f1f8f3; }
.standing-pick-row.lost { border-color: #ead2cc; background: #fcf3f1; }
.standing-round, .standing-picked-player, .standing-opponent, .standing-score, .standing-outcome { display: grid; gap: 5px; color: var(--ink); font-size: 13px; font-weight: 700; }
.standing-round small, .standing-picked-player small, .standing-opponent small, .standing-score small, .standing-outcome small { color: var(--muted); font-size: 10px; font-weight: 750; line-height: 1.2; text-transform: uppercase; letter-spacing: .04em; }
.standing-matchup { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 18px; }
.standing-picked-player .player-identity, .standing-opponent .player-identity { font-size: 13px; font-weight: 700; }
.standing-picked-player .standing-player-name { font-weight: 850; }
.standing-opponent .standing-player-name { font-weight: 500; }
.standing-player-country { display: none; }
.standing-player-name-short, .standing-round-short { display: none !important; }
.standing-round > span { display: flex; min-height: 36px; align-items: center; }
.standing-score { font-variant-numeric: tabular-nums; }
.standing-score-responsive { display: none; }
.standing-score > span, .standing-outcome > span { display: flex; min-height: 36px; align-items: center; }
.standing-outcome > span { font-size: 13px; font-weight: 800; }
.standing-outcome.won > span { color: var(--green); }
.standing-outcome.lost > span { color: #9a493d; }

.overview-case-nav { margin: 24px 0 18px; padding: 12px; border: 1px solid var(--line); border-radius: 16px; background: #f4f6f3; }
.overview-case-nav-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 4px 10px; color: var(--muted); font-size: 12px; }
.overview-case-nav-title strong { color: var(--ink); font-size: 13px; }
.overview-case-links { display: flex; gap: 7px; overflow-x: auto; padding-bottom: 2px; scrollbar-width: thin; }
.overview-case-links a { flex: 0 0 auto; padding: 8px 11px; border: 1px solid transparent; border-radius: 999px; color: var(--muted); background: transparent; font-size: 12px; font-weight: 750; text-decoration: none; }
.overview-case-links a:hover { color: var(--ink); background: white; }
.overview-case-links a.active { border-color: var(--line); color: var(--ink); background: white; box-shadow: 0 3px 10px rgba(18,42,29,.06); }
.overview-case-surface { display: grid; gap: 18px; max-width: 1100px; margin: 0 auto; padding: 16px 0 48px; overflow-x: clip; }
.overview-case-surface[data-overview-case="completed"] { max-width: 1400px; }
.overview-hero { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 30px; padding: 28px 30px; border: 1px solid #cfe1d6; border-left: 5px solid var(--green); border-radius: 18px; background: #f3f8f4; }
.overview-hero.eliminated { border-color: #eccdc6; border-left-color: #a7483c; background: #fdf5f3; }
.overview-hero.winner { border-color: #cfe1d6; border-left-color: #b98d19; background: #f3f8f4; }
.overview-hero.completed { border-color: var(--line); border-left-color: #64716b; background: #f7f8f6; }
.overview-hero-copy h2, .overview-section-head h3, .overview-option-group h4, .overview-match p, .overview-winners h3 { margin: 0; }
.overview-hero-copy h2 { font-size: clamp(25px,3.2vw,36px); line-height: 1.08; letter-spacing: -.025em; }
.overview-hero-subtitle { margin: 9px 0 0; color: var(--ink); font-size: 18px; font-weight: 650; line-height: 1.25; }
.overview-hero-context { margin: 7px 0 0; color: var(--muted); font-size: 16px; font-weight: 750; line-height: 1.25; }
.overview-hero-stats { display: flex; gap: 10px; }
.overview-hero-stats > div { min-width: 150px; padding: 13px 15px; border: 1px solid rgba(29,73,49,.12); border-radius: 13px; background: rgba(255,255,255,.72); }
.overview-hero-stats strong { display: block; }
.overview-stat-label { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.overview-stat-label .info-tip { width: 16px; height: 16px; flex-basis: 16px; }
.overview-hero-stats strong { margin-top: 3px; font-size: 25px; line-height: 1; }
.overview-completed-result { grid-template-columns: minmax(0,1fr) minmax(230px,.34fr); gap: 18px; }
.overview-completed-result > div { display: grid; align-content: center; min-height: 94px; padding: 18px 22px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.78); }
.overview-completed-result span { color: var(--muted); font-size: 12px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.overview-completed-result strong { margin-top: 6px; font-size: 30px; line-height: 1.05; }
.overview-panel { padding: 25px 26px 27px; border: 1px solid var(--line); border-radius: 18px; background: white; }
.overview-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 18px; }
.overview-section-head h3 { font-size: 22px; line-height: 1.18; }
.overview-heading-with-tip { display: flex; align-items: center; gap: 8px; }
.overview-section-head > span { flex: 0 0 auto; margin-top: 4px; padding: 7px 10px; border-radius: 999px; color: var(--muted); background: #f1f4f1; font-size: 11px; font-weight: 800; }
.overview-option-grid, .overview-match-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.overview-option-grid { align-items: start; }
.overview-match-grid.single { grid-template-columns: minmax(0,600px); }
.overview-option-group { overflow: hidden; border: 1px solid var(--line); border-radius: 15px; }
.overview-option-group h4 { padding: 11px 14px; color: var(--muted); background: #f6f8f5; font-size: 12px; letter-spacing: .03em; }
.overview-option { display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; min-height: 64px; padding: 9px 12px; border: 0; border-top: 1px solid var(--line); color: var(--ink); background: white; font: inherit; text-align: left; cursor: pointer; }
.overview-option:hover { background: #f6fbf7; }
.overview-option.selected { background: #eaf5ee; }
.overview-option.selected .player-identity > span:last-child { font-weight: 850; }
.overview-option.unavailable { color: var(--muted); background: #f7f8f6; cursor: not-allowed; }
.overview-option.unavailable:hover { background: #f7f8f6; }
.overview-option.selected:not(.selection-just-added):hover { background: #f9e9e5; }
.overview-option-identity { display: flex; align-items: center; gap: 9px; min-width: 0; }
.overview-option-identity .player-id { min-width: 0; }
.overview-option-copy { display: grid; min-width: 0; gap: 2px; }
.overview-option-copy > small { overflow: hidden; color: var(--muted); font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.overview-option-action { display: grid; flex: 0 0 38px; width: 38px; height: 38px; place-items: center; border: 1px solid #cad5cd; border-radius: 50%; color: var(--green); background: white; font-size: 22px; font-weight: 700; line-height: 1; }
.overview-option.selected .overview-option-action { border-color: var(--green); color: white; background: var(--green); }
.overview-option.selected:not(.selection-just-added):hover .overview-option-action { position: relative; border-color: #9a493d; color: transparent; background: #9a493d; font-size: 0; }
.overview-option.selected:not(.selection-just-added):hover .overview-option-action::after { position: absolute; inset: 0; display: grid; place-items: center; content: "−"; color: white; font-size: 22px; }
.overview-option-status { flex: 0 0 auto; padding: 6px 9px; border-radius: 999px; color: var(--muted); background: #e9eeea; font-size: 10px; font-weight: 800; }
.overview-half-tabs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; margin-bottom: 16px; padding: 5px; border-radius: 12px; background: #f0f3ef; }
.overview-half-tabs button { min-height: 40px; border: 0; border-radius: 9px; color: var(--muted); background: transparent; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.overview-half-tabs button.active { color: var(--ink); background: white; box-shadow: 0 3px 10px rgba(18,42,29,.07); }
.overview-search { display: grid; gap: 6px; max-width: 420px; margin-bottom: 16px; color: var(--muted); font-size: 11px; font-weight: 800; }
.overview-search input { width: 100%; min-height: 42px; padding: 0 13px; border: 1px solid #cad5cd; border-radius: 11px; color: var(--ink); background: white; font: inherit; }
.overview-search input:focus { border-color: var(--green); outline: 3px solid rgba(23,107,69,.12); }
.overview-empty { grid-column: 1 / -1; padding: 28px; border: 1px dashed var(--line); border-radius: 14px; color: var(--muted); text-align: center; }
.overview-selection-recap { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.overview-selection-recap > div { display: flex; min-width: 0; align-items: center; gap: 14px; }
.overview-selection-recap > div > strong { flex: 0 0 auto; font-size: 13px; }
.overview-selection-recap > span { flex: 0 0 auto; color: var(--muted); font-size: 13px; }
.overview-selection-recap > span strong { color: var(--ink); }
.overview-selected-identities { display: flex; min-width: 0; align-items: center; gap: 8px; flex-wrap: wrap; }
.overview-selected-identities > span { display: flex; min-width: 0; align-items: center; gap: 8px; padding: 6px 18px 6px 11px; border-radius: 999px; background: #edf4ef; }
.overview-selected-identities .player-identity { min-width: 0; }
.overview-selected-identities .player-identity > span:last-child { overflow: hidden; font-size: 11px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.overview-selected-identities .player-portrait, .overview-selected-identities .player-portrait-placeholder { border-radius: 50%; }
.overview-locked-identities { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.overview-locked-identities > span { display: inline-flex; align-items: center; gap: 9px; padding: 8px 18px 8px 12px; border-radius: 999px; background: #edf4ef; }
.overview-locked-identities .player-identity > span:last-child { font-weight: 800; }
.overview-locked-identities .player-portrait, .overview-locked-identities .player-portrait-placeholder { border-radius: 50%; }
.overview-bench-panel { border-color: #cfe1d6; background: #fbfdfb; }
.overview-bench-protect { display: grid; gap: 9px; margin-bottom: 16px; }
.overview-bench-protect > strong { color: var(--muted); font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.overview-bench-protect > div { display: flex; gap: 10px; flex-wrap: wrap; }
.overview-bench-protect button { display: flex; min-height: 48px; align-items: center; gap: 7px; padding: 7px 12px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: white; font: inherit; cursor: pointer; }
.overview-bench-protect button.selected { border-color: var(--green); color: var(--green-dark); background: #eaf5ee; box-shadow: 0 0 0 2px rgba(23,107,69,.08); }
.overview-bench-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.overview-bench-option { border: 1px solid var(--line); border-radius: 13px; }
.overview-bench-option-action { flex: 0 0 auto; padding: 7px 10px; border: 1px solid #cad5cd; border-radius: 999px; color: var(--green); background: white; font-size: 10px; font-weight: 850; }
.overview-bench-option:hover .overview-bench-option-action { border-color: var(--green); background: #edf5ef; }
.overview-bench-recap { display: flex; min-width: 0; align-items: center; gap: 7px; }
.overview-bench-recap .player-identity { min-width: 0; }
.overview-bench-actions { display: flex; justify-content: flex-end; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); }
.overview-bench-skipped { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.overview-bench-skipped h3 { margin: 0 0 5px; font-size: 18px; }
.overview-bench-skipped span { color: var(--muted); font-size: 13px; }
.overview-choice-recap { background: #f8faf8; }
.overview-choice-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.overview-choice-item { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 15px; background: white; }
.overview-choice-starter { display: grid; min-height: 70px; grid-template-columns: auto auto minmax(0,1fr); align-items: center; gap: 9px; padding: 12px 14px; }
.overview-choice-role { color: var(--muted); font-size: 9px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.overview-choice-starter .player-id { min-width: 0; }
.overview-choice-starter .player-identity > span:last-child { font-weight: 850; }
.overview-choice-bench { position: relative; display: grid; min-height: 50px; grid-template-columns: auto auto minmax(0,1fr); align-items: center; gap: 8px; margin: 0 12px 12px 34px; padding: 8px 10px; border-left: 2px solid #b8d4c2; border-radius: 0 10px 10px 0; background: #edf5ef; }
.overview-choice-bench .overview-choice-branch { position: absolute; top: 0; left: -20px; width: 18px; height: 25px; border-bottom: 2px solid #b8d4c2; }
.overview-choice-bench .player-id { min-width: 0; }
.overview-choice-bench .player-identity > span:last-child { font-weight: 750; }
.overview-choice-bench .player-portrait, .overview-choice-bench .player-portrait-placeholder { border-radius: 8px; }
.overview-choice-deadline { margin-top: 15px; color: var(--muted); font-size: 12px; text-align: right; }
.overview-choice-deadline strong { color: var(--ink); }
.overview-action-timing { display: flex; justify-content: flex-end; gap: 4px; margin: -4px 0 14px; color: var(--muted); font-size: 12px; }
.overview-action-timing strong { color: var(--ink); }
.overview-deadline-outcome { margin: 16px 0 0; color: var(--ink); font-size: 16px; line-height: 1.5; }
.overview-match { overflow: hidden; border: 1px solid var(--line); border-radius: 15px; background: white; }
.overview-match.won { border-color: #cce1d3; background: #f5faf6; }
.overview-match.lost { border-color: #edcec7; background: #fdf6f4; }
.overview-match.live { border-color: #d6dfdb; }
.overview-match header { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 42px; padding: 8px 13px; border-bottom: 1px solid var(--line); background: rgba(248,250,247,.78); }
.overview-match header strong { font-size: 12px; }
.overview-match-state { color: var(--muted); font-size: 11px; font-weight: 800; }
.overview-match.won .overview-match-state { color: var(--green); }
.overview-match.lost .overview-match-state { color: #a2473b; }
.overview-score-row { display: grid; grid-template-columns: 92px minmax(0,1fr) auto; align-items: center; gap: 10px; min-height: 60px; padding: 8px 13px; border-bottom: 1px solid rgba(213,222,216,.72); }
.overview-score-row:last-of-type { border-bottom: 0; }
.overview-player-role { color: var(--muted); font-size: 9px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.overview-player-main { display: flex; align-items: center; gap: 7px; min-width: 0; }
.overview-player-main .player-id { min-width: 0; }
.overview-player-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.overview-player-name-responsive { display: none; }
.overview-score-row.selection .overview-player-name { font-weight: 850; }
.overview-score-row:not(.selection) .overview-player-name { font-weight: 500; }
.overview-score-row.winner .player-id strong { color: var(--green); }
.overview-score-cells { display: grid; grid-auto-flow: column; grid-auto-columns: 24px; justify-content: end; gap: 2px; font-variant-numeric: tabular-nums; }
.overview-score-cells b { text-align: center; }
.overview-match-note { padding: 7px 13px; color: var(--muted); background: #f6f8f5; font-size: 11px; text-align: right; }
.overview-match-live-action { display: flex; justify-content: flex-end; padding: 10px 13px; background: #f6f8f5; }
.overview-match-live-action .text-button { color: var(--green); font-size: 12px; font-weight: 850; }
.live-score-layer { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 24px; background: rgba(12,28,20,.48); backdrop-filter: blur(4px); }
.live-score-sheet { width: min(560px,100%); max-height: min(760px,calc(100dvh - 48px)); overflow-y: auto; padding: 24px; border: 1px solid rgba(255,255,255,.55); border-radius: 20px; background: white; box-shadow: 0 24px 80px rgba(10,35,22,.24); }
.live-score-sheet > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.live-score-sheet > header h2 { margin: 0; font-size: 27px; }
.live-score-close { display: grid; flex: 0 0 40px; width: 40px; height: 40px; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); background: white; font: inherit; font-size: 26px; line-height: 1; cursor: pointer; }
.live-score-close:hover { border-color: #aebbb2; background: #f3f6f3; }
.live-score-widget-frame { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #f7f9f7; }
.live-score-widget-brand { display: flex; align-items: center; gap: 9px; padding: 12px 14px; border-bottom: 1px solid var(--line); font-size: 12px; }
.live-score-widget-brand .status-dot { width: 8px; height: 8px; background: var(--green); box-shadow: 0 0 0 5px #e7f2ea; }
.live-score-widget-player { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 68px; padding: 10px 14px; border-bottom: 1px solid var(--line); background: white; }
.live-score-widget-player.selection .player-identity > span:last-child { font-weight: 850; }
.live-score-widget-player > span { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.overview-winners { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.overview-winners article { display: grid; align-content: center; min-height: 100px; padding: 17px 20px; border: 1px solid var(--line); border-radius: 16px; background: white; }
.overview-winners h3 { color: var(--muted); font-size: 13px; }
.overview-winners .player-id { margin-top: 8px; }
.overview-winners > article > strong { margin-top: 8px; font-size: 19px; }
.overview-winners > article > span { margin-top: 2px; color: var(--muted); font-size: 13px; }
.overview-winner-team { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 12px; margin-top: 10px; }
.overview-winner-identity { display: grid; min-width: 0; }
.overview-winner-identity strong { font-size: 18px; }
.overview-winner-identity span { margin-top: 2px; color: var(--muted); font-size: 12px; }
.overview-winner-points { display: grid; justify-items: end; padding-left: 16px; border-left: 1px solid var(--line); }
.overview-winner-points strong { font-size: 21px; }
.overview-winner-points span { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }

@media (min-width: 1100px) and (max-width: 1499px) {
  .overview-case-surface[data-overview-case="completed"] .overview-player-name-full { display: none; }
  .overview-case-surface[data-overview-case="completed"] .overview-player-name-responsive { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

@media (max-width: 1099px) {
  .overview-case-surface[data-overview-case="completed"] { max-width: 760px; }
  .overview-case-surface[data-overview-case="completed"] .overview-match-grid { grid-template-columns: 1fr; }
}

@media (max-width: 779px) {
  html, body { background: var(--paper); }
  .app-shell:not(.auth-shell) { padding-top: calc(68px + env(safe-area-inset-top)); }
  .topbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 50;
    height: calc(68px + env(safe-area-inset-top));
    padding-top: env(safe-area-inset-top);
    background: var(--paper);
    box-shadow: 0 1px 0 var(--line);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .draw-sticky-head {
    top: calc(68px + env(safe-area-inset-top));
    z-index: 30;
    display: block;
    background: #f7f9f4;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .draw-browse-tools { grid-template-columns: 1fr; gap: 10px; }
  .draw-search-results { position: static; margin-top: 5px; }
  .draw-heading-scroll { width: 100%; height: 100%; }
  .draw-window-arrow {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 3;
    width: 44px;
  }
  .draw-window-arrow:first-child { left: 0; }
  .draw-window-arrow:last-child { right: 0; }
  .bracket-headings { background: #f7f9f4; }
  .bracket-heading {
    left: calc(var(--x) + 6px);
    justify-content: center;
    width: 188px;
    padding: 0 6px;
    font-size: 10px;
    line-height: 1.05;
    text-align: center;
  }
  .bracket-heading.is-quarterfinal { flex-direction: column; }
  .bracket-heading.is-quarterfinal .round-heading-word { display: block; }
  .public-landing { padding: 14px 0 0; }
  .public-header { min-height: 52px; padding: 0 16px; margin-bottom: 12px; }
  .brand-lockup { gap: 8px; }
  .brand-mark { width: 36px; height: 36px; }
  .brand-wordmark { font-size: 19px; }
  .sign-in-link { padding-right: 0; }
  .public-landing .auth-grid { display: flex; min-height: 0; border: 0; border-radius: 0; box-shadow: none; flex-direction: column; }
  .public-landing .auth-visual { min-height: 0; padding: 20px 20px 0; grid-template-rows: auto 245px; }
  .public-copy .entry-kicker { margin-bottom: 8px; }
  .public-copy h1 { margin-bottom: 10px; font-size: 40px; line-height: 1; }
  .public-copy > p:last-child { font-size: 14px; line-height: 1.42; }
  .location-art.hero { width: calc(100% + 40px); height: 245px; min-height: 245px; margin: 0 0 0 -20px; border-radius: 0; }
  .public-landing .auth-card { max-width: none; padding: 22px 20px 42px; }
  .public-landing .auth-card h2 { font-size: 27px; }
  .public-landing .auth-card .entry-copy { margin-bottom: 16px; line-height: 1.4; }
  .onboarding-page { padding: 14px 16px 34px; }
  .onboarding-header { min-height: 52px; margin-bottom: 4px; }
  .step-progress { align-items: flex-start; flex-direction: column; gap: 10px; }
  .step-progress > div { width: 100%; grid-template-columns: repeat(4,1fr); }
  .tournament-card { grid-template-columns: 110px minmax(0,1fr); }
  .tournament-card .location-art.thumb { grid-row: 1 / 3; width: 110px; height: auto; aspect-ratio: 3 / 2; align-self: start; }
  .tournament-card .mini-button { grid-column: 2; }
  .completed-card-head { grid-template-columns: 110px 1fr; }
  .completed-card-head .location-art.thumb { width: 110px; height: auto; aspect-ratio: 3 / 2; }
  .event-header-art { min-height: 144px; padding: 18px; }
  .location-art.header { width: 72%; opacity: .48; }
  .production-event-header { display: flex; min-height: 0; align-items: center; flex-wrap: wrap; gap: 14px; }
  .production-event-header .production-art.header { order: -1; flex: 0 0 100%; width: 100%; height: auto; aspect-ratio: 3 / 2; opacity: 1; }
  .production-event-header > div { flex: 1 1 0; }
  .event-title-row { align-items: flex-start; flex-direction: column; gap: 8px; }
  .completed-result-hero { align-items: flex-start; flex-direction: column; padding: 20px; }
  .completed-result-hero h2 { font-size: 24px; }
  .season-points { text-align: left; }
  .completed-winner-grid { grid-template-columns: 1fr; }
  .personal-result-row { grid-template-columns: 84px minmax(0,1fr) auto; gap: 12px; }
  .personal-result-row .location-art.thumb, .personal-result-row .production-art.thumb { width: 84px; height: 56px; }
  .personal-result-copy strong { font-size: 16px; }
  .personal-result-copy small { font-size: 12px; }
  .player-row { grid-template-columns: 30px 64px minmax(0,1fr) 38px; gap: 8px; padding: 7px 6px; }
  .player-row.used-player-row { grid-template-columns: 30px 64px minmax(0,1fr) auto; }
  .player-status-used { max-width: 96px; padding: 5px 8px; font-size: 10px; }
  .player-seed { width: 28px; height: 28px; }
  .selected-player-portraits { display: flex; gap: 8px; overflow-x: auto; }
  .selected-player-portraits > div { flex: 0 0 96px; }
  .selected-player-portraits.single > div { flex: 1 1 auto; }
  .your-position { grid-template-columns: 1fr auto; }
  .your-position > div { grid-column: 1 / -1; justify-content: flex-start; }
  .ranking-row { grid-template-columns: 36px 42px minmax(0,1fr) auto; gap: 8px; min-height: 70px; padding: 9px 10px; }
  .ranking-row.ranking-head { grid-template-columns: 36px 42px minmax(0,1fr) auto; gap: 8px; }
  .ranking-head > span:first-child { grid-column: 1; font-size: 0; }
  .ranking-head > span:first-child::after { content:"#"; font-size:12px; }
  .ranking-head .team-heading { grid-column: 2 / 4; }
  .ranking-head .desktop-manager, .ranking-head .ranking-counted, .ranking-row .desktop-manager, .ranking-row .ranking-counted { display: none; }
  .ranking-head > span:last-child { grid-column: 4; }
  .ranking-team small { display: block; }
  .ranking-crest { width: 38px; height: 43px; }
  .ranking-gap { align-items: flex-start; flex-direction: column; gap: 4px; }
  .ranking-pagination { align-items: stretch; flex-direction: column; }
  .ranking-pagination > div { display: grid; grid-template-columns: 1fr 1fr; }
  .standings-page .event-header { margin: 2px 0 0; }
  .standings-page .tournament-tabs { margin-bottom: 22px; }
  .standings-heading { margin-bottom: 12px; }
  .selection-header h2, .tournament-context h2, .standings-heading h2 { font-size: 20px; }
  .standings-page .ranking-tabs { margin-bottom: 16px; }
  .standings-page .info-note { margin: -2px 0 16px; }
  .standings-page .ranking-row { min-height: 74px; padding: 11px 14px 11px 10px; }
  .standings-page .ranking-row.ranking-head { min-height: 44px; padding: 9px 14px 9px 10px; }
  .standings-page .ranking-row, .standings-page .ranking-row.ranking-head { grid-template-columns: 36px 42px minmax(0,1fr) 82px; }
  .standing-points { grid-template-columns: minmax(0,1fr) 24px; gap: 6px; }
  .ranking-head .points-heading { padding-right: 30px; }
  .standings-page .standing-points,
  .standings-page .ranking-head .points-heading { margin-right: 8px; }
  .standing-chevron { width: 24px; height: 24px; font-size: 18px; }
  .standing-breakdown { padding: 14px 10px 16px; }
  .standing-breakdown-summary { grid-template-columns: 1fr; gap: 10px; }
  .standing-picks { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .standing-mobile-head { display: none; }
  .standing-pick-row {
    grid-template-columns: minmax(0,1fr) auto;
    grid-template-areas:
      "round outcome"
      "matchup score";
    align-items: center;
    gap: 8px 12px;
    min-height: 0;
    padding: 10px 12px;
    border-radius: 14px;
  }
  .standing-round { grid-area: round; display: flex; align-items: center; }
  .standing-round small { display: none; }
  .standing-round > span { min-height: 0; }
  .standing-round-long, .standing-player-name-full { display: none !important; }
  .standing-round-short, .standing-player-name-short { display: block !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .standing-round-short { display: inline-grid !important; width: auto; min-width: 34px; min-height: 26px !important; place-items: center; padding: 0 8px; border-radius: 999px; background: rgba(255,255,255,.72); font-size: 11px; }
  .standing-matchup { grid-area: matchup; display: grid; grid-template-columns: 1fr; min-width: 0; align-self: stretch; align-items: start; gap: 0; border-top: 1px solid rgba(100,116,106,.16); }
  .standing-picked-player, .standing-opponent { display: flex; min-width: 0; min-height: 44px; align-items: center; }
  .standing-opponent { border-top: 1px solid rgba(100,116,106,.12); }
  .standing-picked-player small, .standing-opponent small { display: none; }
  .standing-player-identity { width: 100%; max-width: 100%; gap: 6px; font-size: 12px !important; }
  .standing-player-country { display: grid; width: 18px; min-width: 18px; place-items: center; }
  .standing-player-country .country-flag { font-size: 12px; }
  .standing-player-identity .player-portrait, .standing-player-identity .player-portrait-placeholder { width: 30px !important; min-width: 30px !important; height: 30px !important; border-radius: 8px; }
  .standing-player-name { min-width: 0; }
  .standing-score { grid-area: score; display: flex; width: 84px; min-width: 0; align-self: stretch; align-items: flex-start; justify-content: flex-end; border-top: 1px solid rgba(100,116,106,.16); text-align: right; white-space: normal; }
  .standing-score small { display: none; }
  .standing-score > span { display: block; min-height: 0; font-size: 11px; line-height: 1.3; }
  .standing-score-desktop { display: none; }
  .standing-score-responsive { display: grid; width: 100%; grid-template-rows: repeat(2,44px); align-content: start; }
  .standing-score-player-row { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(10px,auto); align-items: center; justify-content: end; gap: 7px; white-space: nowrap; }
  .standing-score-player-row + .standing-score-player-row { border-top: 1px solid rgba(100,116,106,.12); }
  .standing-pick-row.won .standing-picked-player .standing-player-name { color: var(--green); }
  .standing-pick-row.lost .standing-picked-player .standing-player-name { color: #9a493d; }
  .standing-outcome { grid-area: outcome; display: block; min-width: 0; text-align: right; white-space: nowrap; }
  .standing-outcome small { display: none; }
  .standing-outcome > span { min-width: 62px; min-height: 26px; justify-content: center; padding: 0 9px; border-radius: 999px; background: rgba(255,255,255,.72); font-size: 11px; text-align: center; }
  .standing-outcome.won > span { background: #dfeee4; }
  .standing-outcome.lost > span { background: #f4dfda; }
  .overview-case-nav { margin: 16px 0 8px; border-radius: 13px; }
  .overview-case-surface { padding-top: 8px; }
  .overview-hero { grid-template-columns: 1fr; align-items: start; gap: 18px; padding: 21px 20px; }
  .overview-completed-result { gap: 10px; }
  .overview-completed-result > div { min-height: 78px; padding: 15px 16px; }
  .overview-completed-result strong { font-size: 25px; }
  .overview-hero-stats { width: 100%; }
  .overview-hero-stats div { flex: 1; min-width: 0; }
  .overview-panel { padding: 20px 18px; }
  .overview-section-head { display: grid; gap: 10px; }
  .overview-section-head > span { justify-self: start; margin: 0; }
  .overview-option-grid, .overview-match-grid, .overview-winners { grid-template-columns: 1fr; }
  .overview-winner-team { grid-template-columns: auto minmax(0,1fr); }
  .overview-winner-points { grid-column: 1 / -1; width: 100%; grid-template-columns: auto 1fr; align-items: baseline; justify-items: start; gap: 6px; padding: 10px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .overview-bench-options { grid-template-columns: 1fr; }
  .overview-selection-recap { align-items: flex-start; flex-direction: column; gap: 12px; }
  .overview-selection-recap > div { width: 100%; align-items: flex-start; flex-direction: column; gap: 8px; }
  .overview-bench-protect > div { display: grid; grid-template-columns: 1fr; }
  .overview-bench-protect button { width: 100%; }
  .overview-bench-recap { align-items: flex-start; flex-direction: column; }
  .overview-bench-skipped { align-items: flex-start; flex-direction: column; }
  .overview-choice-list { grid-template-columns: 1fr; }
  .overview-choice-deadline { text-align: left; }
  .overview-action-timing { justify-content: flex-start; margin-top: 0; }
  .overview-score-row { grid-template-columns: minmax(0,1fr) auto; gap: 8px; min-height: 66px; }
  .overview-player-role { grid-column: 1 / -1; margin-bottom: -7px; }
  .live-score-layer { align-items: end; padding: 0; }
  .live-score-sheet { width: 100%; max-height: min(82dvh,760px); padding: 20px 18px calc(20px + env(safe-area-inset-bottom)); border: 0; border-radius: 20px 20px 0 0; }
  .live-score-sheet > header h2 { font-size: 24px; }
  .standings-page .standing-toggle { min-height: 88px; }
  .ranking-team .mobile-tournament-status { margin-top: 4px; color: var(--ink); font-size: 11px; line-height: 1.2; white-space: normal; }
}

@media (max-width: 559px) {
  .standing-picks { grid-template-columns: 1fr; }
}
