/* Sideout setup: scoped, original CSS. No font, image, icon or network dependency. */
.so-setup {
  --so-ink: #183a2d;
  --so-muted: #4c6457;
  --so-paper: #f4f3e8;
  --so-card: #fffef6;
  --so-line: #c1cfba;
  --so-lime: #e4f788;
  --so-wood: #d9a56e;
  max-width: 1280px;
  margin: 0 auto;
  padding: 16px;
  color: var(--so-ink);
  background: var(--so-paper);
  font: 16px/1.45 var(--sans, system-ui, sans-serif);
  overflow-wrap: anywhere;
}
.so-setup *, .so-setup *::before, .so-setup *::after { box-sizing: border-box; }
.so-setup h1, .so-setup h2, .so-setup h3, .so-setup p { margin: 0; }
.so-setup h1, .so-setup h2, .so-setup h3 { font-family: inherit; letter-spacing: normal; }
.so-setup h1 { font-size: 28px; line-height: 1.18; }
.so-setup h2 { font-size: 22px; line-height: 1.25; }
.so-setup h3 { font-size: 18px; line-height: 1.35; }
.so-setup p { line-height: 1.45; }
.so-setup button, .so-setup input, .so-setup select, .so-setup summary { font: inherit; }
.so-setup button, .so-setup select, .so-setup input[type="search"] { min-height: 44px; }
.so-setup button { cursor: pointer; }
.so-setup button:disabled, .so-setup select:disabled { cursor: not-allowed; opacity: 1; color: #586558; background: #e9ecdf; border-color: #a9b5a1; }
.so-setup :is(button, input, select, summary):focus-visible { outline: 3px solid var(--so-focus-inner); outline-offset: 2px; box-shadow: 0 0 0 5px var(--so-focus-outer); }
.so-setup button, .so-setup select, .so-setup input, .so-setup summary { -webkit-tap-highlight-color: transparent; }
.so-setup .so-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; height: auto; padding: 0 0 14px; margin: 0 0 14px; border-bottom: 2px solid var(--so-ink); }
.so-setup .so-kicker { font-size: 16px; font-weight: 750; color: var(--so-muted); margin-bottom: 4px; }
.so-setup .so-subtitle { font-size: 16px; margin-top: 6px; max-width: 64ch; }
.so-setup .so-gender { display: flex; flex-shrink: 0; padding: 3px; border: 1px solid var(--so-line); border-radius: 8px; background: #e5eadb; gap: 3px; }
.so-setup .so-gender button { min-width: 84px; border: 1px solid transparent; border-radius: 5px; padding: 8px 12px; background: transparent; color: var(--so-ink); font-weight: 700; }
.so-setup .so-gender button[aria-pressed="true"] { border-color: var(--so-ink); background: var(--so-ink); color: #fffef6; }
.so-setup .so-button { display: inline-flex; justify-content: center; align-items: center; gap: 8px; padding: 9px 13px; border: 1px solid #849a7f; border-radius: 6px; background: var(--so-card); color: var(--so-ink); font-size: 16px; font-weight: 750; line-height: 1.35; text-align: center; }
.so-setup .so-button--primary:not(:disabled) { color: var(--so-lime); background: var(--so-ink); border-color: var(--so-ink); }
.so-setup .so-button:hover:not(:disabled) { border-color: #223d22; background: #e2edcb; }
.so-setup .so-button--primary:hover:not(:disabled) { background: #28543d; color: #f2ffaf; }
.so-setup .so-mode-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.so-setup .so-mode-card { background: var(--so-card); border: 1px solid var(--so-line); border-top: 5px solid var(--so-wood); border-radius: 8px; padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.so-setup .so-mode-card.is-selected { border-color: var(--so-ink); box-shadow: inset 0 0 0 1px var(--so-ink); }
.so-setup .so-mode-card > .so-button { align-self: flex-start; margin-top: auto; }
.so-setup .so-card-heading { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.so-setup .so-card-heading > div { flex: 1; }
.so-setup .so-card-heading .so-kicker { margin: 0; }
.so-setup .so-mode-mark { width: 46px; height: 50px; background: var(--so-ink); color: var(--so-lime); border-radius: 8px 8px 14px 14px; display: grid; place-items: center; flex: 0 0 46px; font-size: 24px; font-weight: 850; }
.so-setup .so-mode-mark--court { position: relative; border-radius: 2px; background: repeating-linear-gradient(90deg, #d99d62 0 11px, #dda670 11px 22px); border: 2px solid #a77b4f; }
.so-setup .so-mode-mark--court::before { content: ''; position: absolute; inset: 4px; border: 1px solid #fff; }
.so-setup .so-mode-mark--court::after { content: ''; position: absolute; height: 2px; background: #fff; left: 4px; right: 4px; top: 50%; }
.so-setup .so-pill { display: inline-flex; font-size: 16px; font-weight: 700; padding: 3px 8px; background: #eaf0d5; border-radius: 5px; white-space: normal; }
.so-setup .so-edition-choice { display: grid; gap: 10px; margin: 0 0 14px; padding: 16px; border: 1px solid var(--so-line); border-left: 5px solid var(--so-ink); border-radius: 8px; background: #e8eddc; }
.so-setup .so-edition-choice details { border-top: 1px solid var(--so-line); padding-top: 8px; }
.so-setup .so-edition-choice summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 750; }
.so-setup .so-edition-choice label { display: grid; gap: 6px; margin-top: 8px; font-weight: 700; }
.so-setup .so-edition-choice select { width: 100%; }
.so-setup .so-help { color: var(--so-muted); font-size: 16px; }
.so-setup .so-resume { border: 1px solid var(--so-line); border-radius: 8px; margin-top: 14px; padding: 14px 16px; display: flex; gap: 14px; align-items: center; justify-content: space-between; background: #e8eddc; }
.so-setup .so-resume h2 { font-size: 18px; }
.so-setup .so-resume p { margin-top: 4px; }
.so-setup .so-notice { padding: 10px 13px; margin-bottom: 12px; border: 1px solid #abc69c; border-left-width: 4px; border-radius: 5px; background: #e7f0dc; }
.so-setup .so-notice p { margin-top: 3px; }
.so-setup .so-notice--error { background: #ffefe4; border-color: #ab451e; }
.so-setup .so-notice--warning { background: #fff2d1; border-color: #a26d20; }
.so-setup .so-notice--success { background: #e7f0dc; border-color: #477243; }
.so-setup .so-budget { position: sticky; top: var(--so-setup-sticky-top, 0px); z-index: 3; box-shadow: 0 3px 8px #1c342b18; display: grid; grid-template-columns: repeat(auto-fit, minmax(155px, 1fr)); border: 1px solid var(--so-line); border-radius: 7px; overflow: hidden; background: #e7edde; }
.so-setup .so-stat { padding: 9px 13px; display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.so-setup .so-stat > span { font-size: 16px; color: var(--so-muted); }
.so-setup .so-stat > strong { font-size: 24px; line-height: 1.3; }
.so-setup .so-stat--balance { background: var(--so-ink); color: #f7ffd9; }
.so-setup .so-stat--balance > span { color: #e4eece; }
.so-setup .so-budget-note, .so-setup .so-national-note { margin: 8px 0 14px; }
.so-setup .so-jump-nav { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.so-setup .so-jump-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 11px; border: 1px solid var(--so-line); border-radius: 5px; background: #edf1e1; color: var(--so-ink); font-size: 16px; font-weight: 700; text-decoration: none; }
.so-setup .so-jump-nav a:hover { text-decoration: underline; }
.so-setup .so-jump-nav a:focus-visible { outline: 3px solid var(--so-focus-inner); outline-offset: 2px; box-shadow: 0 0 0 5px var(--so-focus-outer); }
.so-setup .so-workspace { display: grid; grid-template-columns: minmax(285px, .82fr) minmax(0, 1.8fr); gap: 16px; align-items: start; }
.so-setup .so-team-panel { display: grid; gap: 14px; min-width: 0; }
.so-setup .so-roster, .so-setup .so-lineup, .so-setup .so-squad-guide { padding: 14px; border: 1px solid var(--so-line); border-radius: 8px; background: var(--so-card); min-width: 0; }
.so-setup .so-section-heading { display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.so-setup .so-section-heading > span { font-size: 16px; }
.so-setup .so-role-summary { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 12px; }
.so-setup .so-role-count { font-size: 16px; background: #eaf0de; padding: 4px 7px; border-radius: 4px; }
.so-setup .so-roster-list { list-style: none; padding: 0 4px 0 0; margin: 0; max-height: min(52vh, 560px); overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.so-setup .so-roster-list:focus-visible { outline: 3px solid var(--so-focus-inner); outline-offset: 2px; box-shadow: 0 0 0 5px var(--so-focus-outer); }
.so-setup .so-roster-list > li { padding: 12px 0; border-top: 1px solid var(--so-line); }
.so-setup .so-roster-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.so-setup .so-roster-footer .so-button { padding: 8px 10px; }
.so-setup .so-assigned { font-size: 16px; }
.so-setup .so-filters { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 10px; margin: 10px 0 12px; }
.so-setup label { display: block; color: var(--so-ink); font-size: 16px; font-weight: 650; }
.so-setup select, .so-setup input[type="search"] { width: 100%; display: block; font-size: 16px; min-width: 0; padding: 9px 10px; border: 1px solid #819777; border-radius: 5px; background: #fffefb; color: var(--so-ink); margin-top: 4px; }
.so-setup .so-player-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 10px; }
.so-setup .so-player-card { display: flex; flex-direction: column; gap: 10px; min-width: 0; border: 1px solid var(--so-line); border-radius: 8px; background: var(--so-card); padding: 12px; }
.so-setup .so-player-card.is-selected { border-color: #447446; box-shadow: inset 3px 0 0 #447446; background: #f7fbe9; }
.so-setup .so-player-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.so-setup .so-player-name { min-width: 0; flex: 1; }
.so-setup .so-country { display: block; margin-top: 4px; font-size: 16px; }
.so-setup .so-flag { font-family: 'Apple Color Emoji', 'Segoe UI Emoji', 'Noto Color Emoji', sans-serif; font-size: 20px; vertical-align: -.05em; }
.so-setup .so-positions { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; font-size: 16px; margin-top: 6px; }
.so-setup .so-label-inline { font-size: 16px; color: var(--so-muted); flex-basis: 100%; }
.so-setup .so-role { display: inline-block; padding: 1px 5px; background: #e8eddd; border-radius: 3px; color: var(--so-ink); font-weight: 750; }
.so-setup .so-rating { display: flex; flex-direction: column; align-items: flex-end; flex: 0 0 auto; }
.so-setup .so-rating > span { font-size: 16px; color: var(--so-muted); }
.so-setup .so-rating > strong { font-size: 26px; line-height: 1.2; }
.so-setup .so-rating--unavailable { max-width: 110px; }
.so-setup .so-rating--unavailable > strong { font-size: 16px; line-height: 1.4; }
.so-setup .so-data-note, .so-setup .so-evidence { font-size: 16px; color: #665223; }
.so-setup .so-data-note { margin-top: 5px; font-weight: 650; }
.so-setup .so-physical-note { margin: 3px 0 0; color: #cbd5e1; font-size: 14px; line-height: 1.45; }
.so-setup .so-player-card.is-selected .so-physical-note { color: #334155; }
.so-setup .so-purchase { margin-top: auto; }
.so-setup .so-purchase-bottom { display: flex; gap: 8px; align-items: center; justify-content: space-between; flex-wrap: wrap; margin-top: 9px; }
.so-setup .so-price { font-size: 18px; }
.so-setup .so-reason { color: #685020; font-size: 16px; line-height: 1.4; font-weight: 400; margin-top: 6px; }
.so-setup .so-empty { padding: 15px 0; color: var(--so-muted); font-size: 16px; }
.so-setup .so-lineup > summary { min-height: 44px; padding: 6px 0; margin: -2px 0 8px; font-size: 20px; font-weight: 750; cursor: pointer; }
.so-setup .so-lineup:not([open]) > summary { margin-bottom: 0; }
.so-setup .so-lineup > summary .so-pill { margin-left: 6px; }
.so-setup .so-lineup-suggestion { margin-top: 10px; }
.so-setup [id] { scroll-margin-top: calc(var(--so-setup-sticky-top, 0px) + 160px); }
.so-setup .so-lineup-grid { display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 12px; }
.so-setup .so-libero-slot { margin-top: 12px; padding-top: 12px; border-top: 2px solid var(--so-wood); }
.so-setup .so-lineup-slot { min-width: 0; }
.so-setup .so-validation { background: #eaf0df; border-radius: 6px; padding: 10px 12px; margin: 10px 0; font-size: 16px; }
.so-setup .so-validation ul { padding-left: 20px; margin: 6px 0 0; }
.so-setup .so-errors { color: #8b3416; }
.so-setup .so-warnings { color: #695021; }
.so-setup .so-actions { position: sticky; bottom: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 0; margin: 16px 0 0; border-top: 2px solid #a9b99e; background: var(--so-paper); font-size: 16px; letter-spacing: normal; box-shadow: 0 -5px 8px #f4f3e8bd; }
.so-setup .so-start-area { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.so-setup .so-start-area .so-reason { margin: 0; max-width: 45ch; }
.so-setup .so-national-top { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(0, 1.8fr); gap: 14px; align-items: end; }
.so-setup .so-selection-counts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--so-line); border-radius: 7px; background: #e7edde; }
.so-setup .so-selection-counts .so-stat > strong { font-size: 20px; }
.so-setup .so-squad-guide h2 { margin-bottom: 8px; }
.so-setup .so-squad-guide > p + p { margin-top: 8px; }
.so-setup .so-details { border-top: 1px solid var(--so-line); margin-top: 10px; padding-top: 4px; font-size: 16px; }
.so-setup .so-details summary { min-height: 44px; padding: 9px 0; cursor: pointer; font-weight: 750; }
.so-setup .so-details p { margin: 8px 0; }
.so-setup .so-player-choices { display: grid; grid-template-columns: 1fr; gap: 5px; margin-top: auto; }
.so-setup .so-check { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 9px; border: 1px solid #c0cfb5; border-radius: 5px; background: #eaf0de; cursor: pointer; font-weight: 650; }
.so-setup .so-check:has(input:checked) { border-color: #315f35; background: #e3f0c0; }
.so-setup .so-check:has(input:disabled) { color: #52614e; cursor: not-allowed; }
.so-setup .so-check input { margin: 0; width: 22px; height: 22px; accent-color: #235332; flex: 0 0 22px; }
.so-setup .so-check--libero { background: #f0e7d3; }
@media (max-width: 880px) {
  .so-setup .so-workspace { grid-template-columns: minmax(0, 1fr); }
  .so-setup .so-pool { grid-row: 1; }
  .so-setup .so-team-panel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .so-setup .so-national-top { grid-template-columns: 1fr; }
  .so-setup .so-national-top > label { max-width: 440px; }
}
@media (max-width: 620px) {
  .so-setup { padding: 12px; }
  .so-setup .so-head { flex-direction: column; gap: 10px; }
  .so-setup .so-gender { width: 100%; }
  .so-setup .so-gender button { flex: 1; }
  .so-setup .so-mode-grid, .so-setup .so-team-panel { grid-template-columns: minmax(0, 1fr); }
  .so-setup .so-mode-card { padding: 13px; }
  .so-setup .so-mode-card > .so-button { width: 100%; }
  .so-setup .so-resume { align-items: stretch; flex-direction: column; }
  .so-setup .so-budget { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .so-setup .so-selection-counts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .so-setup .so-selection-counts .so-stat { padding: 8px; }
  .so-setup .so-selection-counts .so-stat > strong { font-size: 18px; }
  .so-setup .so-stat > span { line-height: 1.25; }
  .so-setup .so-filters { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
  .so-setup .so-start-area { align-items: stretch; flex-direction: column; gap: 6px; }
  .so-setup .so-actions { align-items: flex-end; }
  .so-setup .so-start-area .so-reason { max-width: 26ch; }
}
@media (prefers-reduced-motion: reduce) {
  .so-setup * { scroll-behavior: auto; transition: none; animation: none; }
}
