:root { --red:#e21d2f; --ink:#111318; --muted:#666b73; --line:#e7e7e9; --paper:#f7f7f5; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font-family:Arial, Helvetica, sans-serif; color:var(--ink); background:white; }
a { color:inherit; text-decoration:none; }
.container { width:min(1120px, calc(100% - 40px)); margin:0 auto; }
.app-frame { min-height:100vh; display:grid; grid-template-columns:248px minmax(0,1fr); background:white; }
.side-menu { position:sticky; top:0; height:100vh; overflow-y:auto; border-right:1px solid var(--line); background:rgba(255,255,255,.98); padding:28px 22px; display:flex; flex-direction:column; gap:34px; z-index:10; }
.brand { font-weight:900; letter-spacing:.08em; font-size:18px; } .brand span { color:var(--red); }
.side-nav,.side-account { display:flex; flex-direction:column; gap:8px; }
.side-nav-link { display:flex; align-items:center; min-height:42px; padding:11px 12px; color:var(--muted); font-size:14px; font-weight:800; }
.side-nav-link:hover { color:var(--red); background:#f7f7f5; }
.side-nav-group { margin-top:12px; padding-top:14px; border-top:1px solid var(--line); display:grid; gap:8px; }
.side-nav-group > span { color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-size:10px; font-weight:900; padding:0 12px; }
.side-tournament { border:1px solid var(--line); background:#fff; }
.side-tournament summary { cursor:pointer; padding:11px 12px; font-size:13px; font-weight:900; line-height:1.25; list-style:none; overflow-wrap:anywhere; }
.side-tournament summary::-webkit-details-marker { display:none; }
.side-tournament summary:hover { color:var(--red); }
.side-tournament-links { border-top:1px solid var(--line); padding:8px 12px 12px; display:grid; gap:7px; }
.side-tournament-links a,.side-action-button,.side-disabled { color:var(--muted); font-size:12px; font-weight:800; text-align:left; }
.side-tournament-links a:hover,.side-action-button:hover { color:var(--red); }
.side-disabled { opacity:.55; }
.side-account { margin-top:auto; padding-top:22px; border-top:1px solid var(--line); }
.side-account .button_to { margin:0; }
.app-content { min-width:0; }
.nav-button,.primary-button { background:var(--red); color:white; padding:13px 19px; font-weight:700; display:inline-block; }
.side-account .nav-button { text-align:center; }
.link-button { border:0; background:transparent; padding:0; font:inherit; cursor:pointer; color:inherit; font-weight:800; }
.link-button:hover { color:var(--red); }
.icon-button { width:44px; height:44px; border:1px solid var(--line); background:white; display:inline-flex; align-items:center; justify-content:center; font-size:20px; font-weight:900; }
.icon-button:hover { color:var(--red); border-color:var(--red); }
.hero { background:var(--paper); border-bottom:1px solid var(--line); }
.hero-grid { min-height:610px; display:grid; grid-template-columns:1.25fr .75fr; gap:70px; align-items:center; }
.eyebrow { color:var(--red); font-weight:800; letter-spacing:.16em; font-size:12px; margin-bottom:18px; }
h1 { margin:0; font-size:clamp(58px,8vw,106px); line-height:.88; letter-spacing:-.06em; } h1 span { color:var(--red); }
h2 { font-size:clamp(34px,5vw,58px); margin:0 0 32px; letter-spacing:-.04em; }
.hero-copy { font-size:20px; line-height:1.6; max-width:660px; color:var(--muted); margin:32px 0; }
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; }.secondary-button { border:1px solid #bbb; padding:12px 18px; font-weight:700; background:white; }
.hero-photo-card { position:relative; min-height:460px; overflow:hidden; background:var(--ink); }
.hero-photo-card img,.hero-photo-card .image-fallback,.hero-photo-card .fallback-placeholder { width:100%; height:100%; min-height:460px; object-fit:cover; display:flex; }
.hero-photo-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(17,19,24,0) 42%,rgba(17,19,24,.88) 100%); }
.hero-photo-caption { position:absolute; left:30px; right:30px; bottom:30px; z-index:1; color:white; }
.hero-photo-caption span { display:block; font-size:22px; line-height:1.25; font-weight:800; letter-spacing:-.02em; max-width:330px; }
.small-label { font-size:11px; color:#aaa; letter-spacing:.15em; font-weight:bold; }
.flow-list { display:flex; gap:10px; flex-wrap:wrap; align-items:center; line-height:1.8; }.flow-list span { font-weight:700; }.flow-list b { color:var(--red); }
.section { padding:110px 0; }.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }.card { border-top:3px solid var(--ink); padding:26px 4px; }.card-number { color:var(--red); font-size:12px; font-weight:bold; }.card h3 { font-size:26px; margin:20px 0 10px; }.card p { color:var(--muted); line-height:1.6; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:42px; }
.section-heading h2 { max-width:820px; margin-bottom:0; }
.previous-competitions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.competition-card { border-top:3px solid var(--ink); border-bottom:1px solid var(--line); padding:24px 4px 20px; min-height:250px; display:flex; flex-direction:column; justify-content:space-between; gap:24px; }
.competition-card h3 { font-size:24px; line-height:1.12; letter-spacing:-.03em; margin:18px 0 12px; }
.competition-card p { color:var(--muted); line-height:1.55; margin:0; }
.competition-card-footer { display:flex; justify-content:space-between; align-items:center; gap:16px; color:var(--muted); font-size:13px; font-weight:800; }
.resource-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.resource-card { border:1px solid var(--line); padding:26px; min-height:250px; display:flex; flex-direction:column; align-items:flex-start; }
.resource-card h3 { font-size:24px; line-height:1.12; letter-spacing:-.03em; margin:0 0 12px; }
.resource-card p { color:var(--muted); line-height:1.55; margin:0 0 18px; }
.resource-card .text-link { margin-top:auto; }
.resource-section-alt { background:#f7f7f5; }
.video-list { border-top:1px solid var(--line); }
.video-row { display:grid; grid-template-columns:64px 1fr auto; align-items:center; gap:24px; padding:24px 0; border-bottom:1px solid var(--line); }
.video-row > span { color:var(--red); font-size:12px; font-weight:900; letter-spacing:.12em; }
.video-row h3 { font-size:22px; line-height:1.2; letter-spacing:-.03em; margin:0 0 8px; }
.video-row p { color:var(--muted); line-height:1.5; margin:0; }
.dark-section { background:var(--ink); color:white; padding:110px 0; }.eyebrow.light { color:#ff5b68; }
.news-board { display:grid; grid-template-columns:1fr 1fr; gap:34px; margin-top:42px; }
.news-column { border-top:1px solid #383b42; }
.news-column h3 { font-size:32px; letter-spacing:-.03em; margin:24px 0; }
.news-note { border-bottom:1px solid #383b42; padding:24px 0; }
.news-note h4 { font-size:22px; line-height:1.2; margin:14px 0 10px; }
.news-note p { color:#c5c7cc; line-height:1.6; margin:0 0 14px; }
.light-link { color:#ff5b68; }
.cta { display:flex; justify-content:space-between; align-items:end; gap:30px; }.cta h2 { margin-bottom:0; max-width:720px; }
footer { border-top:1px solid var(--line); padding:26px 0; color:var(--muted); font-size:13px; }.footer-inner { display:flex; justify-content:space-between; gap:20px; }
@media (max-width: 800px) { .app-frame { grid-template-columns:168px minmax(0,1fr); }.side-menu { padding:22px 14px; }.brand { font-size:15px; line-height:1.25; }.side-nav-link { font-size:13px; padding:10px 9px; }.nav-button { padding:11px 12px; font-size:13px; }.hero-grid { grid-template-columns:1fr; padding:70px 0; }.hero-photo-card,.hero-photo-card img { min-height:340px; }.cards,.previous-competitions,.resource-grid { grid-template-columns:1fr; }.section-heading,.cta { align-items:flex-start; flex-direction:column; }.video-row { grid-template-columns:1fr; align-items:flex-start; }.section,.dark-section { padding:75px 0; } }

/* Application screens */
.page-shell { min-height:70vh; padding:72px 0 100px; background:#fff; }
.page-shell.organizer-page { background:#f7f7f5; }
.page-shell.organizer-directory-page { background:#fff; }
.narrow { max-width:780px; }
.breadcrumbs { margin-bottom:28px; color:var(--muted); font-size:13px; }
.breadcrumbs ol { list-style:none; display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:0; margin:0; }
.breadcrumbs li { display:flex; align-items:center; gap:8px; min-width:0; }
.breadcrumbs li:not(:last-child)::after { content:"/"; color:#a0a3a8; }
.breadcrumbs a { color:var(--muted); font-weight:800; }
.breadcrumbs a:hover { color:var(--red); text-decoration:underline; }
.breadcrumbs [aria-current="page"] { color:var(--ink); font-weight:800; }
.page-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:48px; }
.compact-heading { margin-bottom:24px; }
.page-title { font-size:clamp(42px,6vw,72px); line-height:.95; letter-spacing:-.055em; margin:0 0 18px; }
.page-copy { color:var(--muted); font-size:18px; line-height:1.6; max-width:700px; margin:0; }
.section-compact { margin-top:60px; }
.section-title { font-size:36px; margin-bottom:24px; }
.list-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.entity-card { border:1px solid var(--line); background:white; padding:26px; min-height:230px; display:flex; flex-direction:column; align-items:flex-start; }
.entity-card h2 { font-size:25px; letter-spacing:-.03em; margin:18px 0 8px; }
.entity-card p { color:var(--muted); line-height:1.55; margin:0 0 12px; }
.entity-card .text-link { margin-top:auto; }
.academy-card {
  background:white;
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:0 14px 34px rgba(18,20,24,.08);
  min-height:330px;
  overflow:visible;
  position:relative;
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.academy-card:has(.kebab-menu[open]) {
  z-index:40;
}
.academy-card:hover {
  border-color:#d8d8dc;
  box-shadow:0 18px 44px rgba(18,20,24,.12);
  transform:translateY(-2px);
}
.academy-card-main {
  display:flex;
  flex-direction:column;
  min-height:330px;
}
.academy-card-logo {
  align-items:center;
  background:linear-gradient(145deg,#111318 0%,#23262d 100%);
  border-radius:8px 8px 0 0;
  display:flex;
  height:172px;
  justify-content:center;
  overflow:hidden;
  padding:28px;
}
.academy-card-logo img,
.academy-card-logo .image-fallback,
.academy-card-logo .fallback-placeholder {
  display:flex;
  height:100%;
  object-fit:contain;
  width:100%;
}
.academy-card-logo .fallback-placeholder {
  border-radius:999px;
  font-size:52px;
  height:96px;
  width:96px;
}
.academy-card-body {
  display:flex;
  flex:1;
  flex-direction:column;
  padding:20px;
}
.academy-card-body h2 {
  font-size:24px;
  letter-spacing:-.035em;
  line-height:1.1;
  margin:0 0 8px;
}
.academy-card-body p {
  color:var(--muted);
  line-height:1.45;
  margin:0 0 8px;
}
.academy-card-menu {
  position:absolute;
  right:10px;
  top:10px;
  z-index:5;
}
.academy-card-menu[open] {
  z-index:60;
}
.academy-card-menu summary {
  background:rgba(17,19,24,.76);
  border-color:rgba(255,255,255,.16);
  color:white;
}
.academy-card-menu summary:hover,
.academy-card-menu[open] summary {
  background:#111318;
  border-color:#111318;
}
.academy-athlete-stack {
  display:flex;
  margin-top:auto;
  padding-top:14px;
}
.academy-athlete-stack span {
  background:white;
  border:2px solid white;
  border-radius:999px;
  box-shadow:0 4px 14px rgba(20,22,26,.16);
  display:block;
  height:34px;
  margin-right:-9px;
  overflow:hidden;
  width:34px;
}
.academy-athlete-stack img,
.academy-athlete-stack .image-fallback,
.academy-athlete-stack .fallback-placeholder {
  display:flex;
  font-size:11px;
  height:100%;
  object-fit:cover;
  padding:0;
  width:100%;
}
.academy-show-header {
  align-items:flex-start;
  display:flex;
  gap:24px;
  justify-content:space-between;
  margin-bottom:30px;
  position:relative;
  z-index:20;
}
.academy-show-identity {
  align-items:center;
  display:flex;
  gap:22px;
  min-width:0;
}
.academy-show-logo {
  align-items:center;
  background:#111318;
  border-radius:8px;
  box-shadow:0 14px 34px rgba(18,20,24,.12);
  display:flex;
  flex:0 0 auto;
  height:118px;
  justify-content:center;
  overflow:hidden;
  padding:20px;
  width:118px;
}
.academy-show-logo img,
.academy-show-logo .image-fallback,
.academy-show-logo .fallback-placeholder {
  display:flex;
  height:100%;
  object-fit:contain;
  width:100%;
}
.academy-show-logo .fallback-placeholder {
  border-radius:999px;
  font-size:40px;
}
.academy-show-menu {
  flex:0 0 auto;
  margin-top:6px;
  z-index:50;
}
.academy-contact-panel {
  border:1px solid var(--line);
  margin:22px 0 8px;
  padding:24px;
}
.academy-contact-panel h2 {
  font-size:24px;
  letter-spacing:-.03em;
  margin:0 0 20px;
}
.academy-contact-grid {
  display:grid;
  gap:18px;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.academy-contact-grid div {
  border-top:1px solid var(--line);
  min-width:0;
  padding-top:14px;
}
.academy-contact-grid span {
  color:var(--muted);
  display:block;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.academy-contact-grid strong {
  display:block;
  font-size:17px;
  line-height:1.35;
  margin-top:8px;
  overflow-wrap:anywhere;
}
.academy-management-panel {
  display:grid;
  gap:16px;
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin-top:24px;
}
.academy-management-card {
  border:1px solid var(--line);
  border-radius:8px;
  display:grid;
  gap:8px;
  padding:20px;
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.academy-management-card:hover {
  background:#f7f7f5;
  border-color:#d2d6dd;
  transform:translateY(-1px);
}
.academy-management-card > span {
  align-items:center;
  background:#111318;
  border-radius:8px;
  color:white;
  display:flex;
  height:38px;
  justify-content:center;
  width:38px;
}
.academy-management-card strong {
  font-size:18px;
}
.academy-management-card small {
  color:var(--muted);
  line-height:1.4;
}
.notification-list {
  display:grid;
  gap:14px;
}
.notification-card {
  background:white;
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:0 1px 0 rgba(16,17,20,.02);
  display:grid;
  gap:18px;
  grid-template-columns:minmax(0,1fr) auto;
  padding:22px;
  position:relative;
}
.notification-card h2 {
  font-size:24px;
  letter-spacing:-.03em;
  line-height:1.1;
  margin:14px 0 8px;
}
.notification-card p {
  color:var(--muted);
  line-height:1.5;
  margin:0 0 10px;
}
.notification-card small {
  color:var(--muted);
  font-weight:700;
}
.notification-dismiss {
  align-items:center;
  background:white;
  border:1px solid transparent;
  border-radius:8px;
  color:var(--muted);
  display:flex;
  height:32px;
  justify-content:center;
  position:absolute;
  right:12px;
  top:12px;
  width:32px;
}
.notification-dismiss:hover {
  background:#f7f7f5;
  border-color:var(--line);
  color:var(--red);
}
.notification-dismiss .ui-icon {
  height:16px;
  width:16px;
}
.notification-actions {
  align-items:end;
  display:flex;
  gap:10px;
  padding-right:34px;
}
.tournament-status-groups {
  display:grid;
  gap:18px;
}
.tournament-status-group {
  background:white;
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:0 12px 30px rgba(16,17,20,.05);
  overflow:hidden;
}
.tournament-status-header {
  align-items:center;
  background:#fcfcfb;
  border-bottom:1px solid #edf0f2;
  display:flex;
  gap:18px;
  justify-content:space-between;
  padding:20px 24px;
}
.tournament-status-header h3 {
  font-size:24px;
  letter-spacing:-.03em;
  line-height:1.15;
  margin:6px 0 0;
}
.tournament-status-header .muted {
  font-size:11px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.tournament-status-group .approval-table {
  border:0;
  border-radius:0;
  margin-top:0;
}
.tournament-status-table {
  display:grid;
}
.tournament-status-row {
  align-items:start;
  border-bottom:1px solid #edf0f2;
  display:grid;
  gap:22px;
  grid-template-columns:minmax(230px,1.45fr) minmax(180px,1.15fr) minmax(170px,1fr) minmax(220px,1.25fr) minmax(120px,.7fr);
  min-height:88px;
  padding:20px 24px;
}
.tournament-status-row:not(.tournament-status-row-header):hover {
  background:#fcfcfb;
}
.tournament-status-row:last-child {
  border-bottom:0;
}
.tournament-status-row-header {
  align-items:center;
  background:#f8f8f6;
  color:#767b84;
  font-size:11px;
  font-weight:900;
  letter-spacing:.1em;
  min-height:44px;
  padding-bottom:13px;
  padding-top:13px;
  text-transform:uppercase;
}
.tournament-status-row > div {
  display:grid;
  gap:5px;
  min-width:0;
}
.tournament-status-row strong {
  color:var(--ink);
  line-height:1.25;
  overflow-wrap:anywhere;
}
.tournament-status-row small {
  color:var(--muted);
  display:block;
  font-size:13px;
  font-weight:700;
  line-height:1.45;
  overflow-wrap:anywhere;
}
.tournament-status-athlete {
  align-items:flex-start;
  display:flex!important;
  gap:14px;
}
.tournament-status-avatar {
  background:#111318;
  border-radius:999px;
  display:block;
  flex:0 0 auto;
  height:56px;
  overflow:hidden;
  width:56px;
}
.tournament-status-avatar img,
.tournament-status-avatar .image-fallback,
.tournament-status-avatar .fallback-placeholder {
  display:flex;
  font-size:15px;
  height:100%;
  object-fit:cover;
  padding:0;
  width:100%;
}
.tournament-status-athlete-details {
  display:grid;
  gap:2px;
}
.tournament-status-athlete-details strong {
  font-size:18px;
}
.tournament-status-draw .draw-state-pill {
  justify-self:start;
  margin-bottom:2px;
}
.organizer-card { min-height:320px; }
.organizer-photo { width:96px; height:96px; border-radius:999px; overflow:hidden; background:var(--ink); color:white; display:flex; align-items:center; justify-content:center; font-size:28px; font-weight:900; margin-bottom:18px; }
.organizer-photo img,.organizer-photo .image-fallback,.organizer-photo .fallback-placeholder { width:100%; height:100%; object-fit:cover; display:flex; }
.organizer-events { margin-top:auto; }
.organizer-events span { max-width:100%; }
.organizer-profile-panel { border:1px solid var(--line); background:white; padding:28px; display:grid; grid-template-columns:minmax(260px,.8fr) 1.2fr; gap:28px; align-items:center; }
.organizer-profile-identity { display:flex; align-items:center; gap:18px; min-width:0; }
.organizer-profile-avatar { width:72px; height:72px; border-radius:999px; background:var(--ink); color:white; display:flex; align-items:center; justify-content:center; font-size:24px; font-weight:900; flex:0 0 auto; }
.organizer-profile-identity span,.organizer-contact-list span,.organizer-event-main span,.organizer-event-meta span,.subtle-count { color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-size:11px; font-weight:800; }
.organizer-profile-identity strong { display:block; margin-top:6px; font-size:28px; line-height:1.1; letter-spacing:-.03em; overflow-wrap:anywhere; }
.organizer-contact-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.organizer-contact-list div { border-left:1px solid var(--line); padding-left:18px; min-width:0; }
.organizer-contact-list strong { display:block; margin-top:8px; font-size:16px; line-height:1.35; overflow-wrap:anywhere; }
.subtle-count { align-self:center; background:white; border:1px solid var(--line); padding:9px 12px; }
.organizer-event-list { border:1px solid var(--line); background:white; }
.organizer-event-row { display:grid; grid-template-columns:minmax(0,1fr) 130px auto auto; align-items:center; gap:20px; padding:18px 22px; border-bottom:1px solid var(--line); }
.organizer-event-row:last-child { border-bottom:0; }
.organizer-event-row:hover { background:#fafafa; }
.organizer-event-main { min-width:0; }
.organizer-event-main strong { display:block; margin:6px 0; font-size:19px; line-height:1.25; letter-spacing:-.02em; overflow-wrap:anywhere; }
.organizer-event-main p { margin:0; color:var(--muted); font-size:14px; line-height:1.4; }
.organizer-event-meta strong { display:block; margin-top:6px; font-size:14px; white-space:nowrap; }
.tournament-card { position:relative; overflow:hidden; padding-top:0; }
.tournament-visual { width:calc(100% + 52px); height:150px; margin:0 -26px 22px; background:linear-gradient(135deg,#111318 0%,#2f333b 55%,#e21d2f 100%); display:flex; align-items:center; justify-content:center; border-bottom:1px solid var(--line); }
.tournament-visual img,.tournament-visual .image-fallback,.tournament-visual .fallback-placeholder { width:100%; height:100%; object-fit:contain; }
.tournament-visual img { padding:24px; }
.tournament-visual span,.tournament-visual .fallback-placeholder { color:white; font-size:64px; font-weight:900; line-height:1; }
.tournament-banner { margin:0 0 28px; border:1px solid var(--line); background:#f7f7f5; max-height:320px; overflow:hidden; }
.tournament-banner img,.tournament-banner .image-fallback,.tournament-banner .fallback-placeholder { width:100%; height:100%; max-height:320px; min-height:220px; object-fit:cover; display:flex; }
.card-links { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:auto; }
.muted-link { color:var(--muted); }
.entity-meta { display:flex; gap:30px; margin:18px 0 22px; }
.entity-meta span { display:flex; flex-direction:column; gap:5px; font-size:13px; color:var(--muted); }
.entity-meta strong { color:var(--ink); text-transform:uppercase; letter-spacing:.08em; font-size:10px; }
.status-pill { display:inline-flex; padding:7px 10px; border-radius:999px; background:#f0f0f1; text-transform:uppercase; letter-spacing:.08em; font-weight:800; font-size:10px; }
.status-registration_open,.status-approved,.status-weight_verified { background:#e7f7ec; color:#176532; }
.status-pending { background:#fff4d6; color:#785500; }
.status-rejected,.status-cancelled,.status-disqualified { background:#fde8e8; color:#9a1b1b; }
.status-registration_closed { background:#f0f0f1; color:#555; }
.text-link { font-weight:800; color:var(--red); }
.text-link:hover { text-decoration:underline; }
.muted { color:var(--muted)!important; }
.form-card,.detail-card { margin-top:36px; border:1px solid var(--line); padding:32px; background:white; }
.form-grid { display:grid; gap:22px; }
.form-grid.two-col { grid-template-columns:1fr 1fr; }
.form-grid .full { grid-column:1/-1; }
.form-section-heading { border-top:1px solid var(--line); padding-top:22px; margin-top:8px; }
.form-section-heading:first-child { border-top:0; padding-top:0; margin-top:0; }
.form-section-heading h2 { font-size:24px; letter-spacing:-.03em; margin:0; }
.form-grid label { display:block; font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; margin-bottom:8px; }
.form-grid input,.form-grid select,.form-grid textarea { width:100%; border:1px solid #cfd0d4; background:white; padding:13px 14px; font:inherit; min-height:48px; }
.form-grid input:focus,.form-grid select:focus { outline:2px solid rgba(226,29,47,.2); border-color:var(--red); }
.readonly-field { width:100%; border:1px solid #cfd0d4; background:#f7f7f5; padding:13px 14px; min-height:48px; font-weight:800; display:flex; align-items:center; }
.checklist-group { border:1px solid #cfd0d4; padding:16px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 18px; }
.checkbox-option { display:flex!important; align-items:flex-start; gap:10px; margin:0!important; font-size:14px!important; font-weight:700!important; letter-spacing:0!important; text-transform:none!important; line-height:1.35; }
.checkbox-option input { width:auto!important; min-height:0!important; margin-top:2px; }
.other-options { grid-column:1/-1; display:grid; gap:10px; }
.other-row input { width:100%; }
.field-hint { margin:8px 0 0; color:var(--muted); font-size:13px; }
.organizer-picker { background:white; border:1px solid #d8d9dc; border-radius:6px; padding:16px; display:grid; gap:12px; }
.organizer-picker-search { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; }
.organizer-picker-search input { min-height:48px; }
.organizer-picker-search.is-disabled { opacity:.55; }
.organizer-picker-search.is-disabled input,
.organizer-picker-search.is-disabled button { cursor:not-allowed; }
.organizer-picker-selected { display:flex; flex-wrap:wrap; gap:8px; min-height:34px; }
.organizer-chip { display:inline-flex; align-items:center; gap:8px; background:#f0f1f4; border:1px solid #e5e5e6; border-radius:6px; color:#060b1f; padding:9px 11px; font-size:14px; font-weight:800; }
.organizer-chip button { border:0; background:transparent; cursor:pointer; color:var(--muted); font-size:18px; font-weight:900; padding:0; }
.organizer-chip button:hover { color:var(--red); }
.organizer-account-toggle { align-items:center; background:#fafaf8; border:1px solid var(--line); border-radius:6px; display:flex; justify-self:start; margin-top:2px; padding:10px 12px; }
.invite-toggle { justify-self:start; }
.organizer-invite-field { display:grid; gap:10px; }
.form-actions { display:flex; gap:12px; align-items:center; margin-top:28px; flex-wrap:wrap; }
.button-reset { border:0; cursor:pointer; font:inherit; }
.form-errors { background:#fff0f0; border-left:4px solid var(--red); padding:16px 18px; margin-bottom:24px; }
.form-errors ul { margin-bottom:0; }
.filter-bar { border:1px solid var(--line); background:#f7f7f5; padding:18px; margin:0 0 28px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; align-items:end; }
.filter-bar.compact-filter { grid-template-columns:1fr auto; }
.filter-bar label { display:block; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; margin-bottom:7px; }
.filter-bar input,.filter-bar select { width:100%; border:1px solid #cfd0d4; padding:12px 13px; font:inherit; background:white; min-height:46px; }
.filter-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.tournament-filter-panel { border:1px solid var(--line); background:#f7f7f5; padding:22px; margin:0 0 32px; }
.filter-panel-header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid var(--line); }
.filter-panel-header > div { display:flex; flex-direction:column; gap:6px; }
.filter-panel-header strong { font-size:22px; letter-spacing:-.02em; }
.tournament-filter-grid { display:grid; grid-template-columns:2fr 1fr 1fr auto; gap:14px; align-items:end; }
.filter-field label { display:block; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; margin-bottom:7px; }
.filter-field input,.filter-field select { width:100%; border:1px solid #cfd0d4; padding:13px 14px; font:inherit; background:white; min-height:48px; }
.filter-field input:focus,.filter-field select:focus { outline:2px solid rgba(226,29,47,.2); border-color:var(--red); }
.search-field input { font-weight:700; }
.tournament-filter-actions { min-width:220px; justify-content:flex-end; }
.pagination { margin-top:28px; display:flex; justify-content:center; align-items:center; gap:14px; color:var(--muted); font-weight:800; }
.checkbox-fieldset { border:1px solid #cfd0d4; padding:16px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 18px; }
.checkbox-fieldset legend { font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:0 8px; }
.payment-instructions { border:1px solid var(--line); padding:20px; background:#f8f7f4; }
.payment-instructions h2 { margin:0 0 14px; font-size:22px; }
.payment-instructions dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 18px; margin:0 0 14px; }
.payment-instructions dt { color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-size:10px; }
.payment-instructions dd { margin:3px 0 0; font-weight:800; }
.athlete-photo { width:160px; height:160px; border:1px solid var(--line); overflow:hidden; background:white; margin-top:22px; }
.athlete-photo img,.athlete-photo .image-fallback,.athlete-photo .fallback-placeholder { width:100%; height:100%; object-fit:cover; display:flex; }
.image-fallback { position:relative; align-items:center; justify-content:center; width:100%; height:100%; }
.fallback-image { display:block; }
.fallback-image.is-hidden { display:none!important; }
.fallback-placeholder { align-items:center; justify-content:center; background:linear-gradient(135deg,#111318 0%,#3b3f47 100%); color:white; font-weight:900; text-align:center; padding:14px; letter-spacing:.02em; }
.fallback-placeholder[hidden] { display:none!important; }
.category-picker { border:1px solid #cfd0d4; padding:16px; display:grid; gap:12px; }
.category-picker-row { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center; }
.category-picker-select { width:100%; border:1px solid #cfd0d4; background:white; padding:13px 14px; font:inherit; min-height:48px; }
.category-remove-button[hidden],.add-more-category-option[hidden] { display:none!important; }
.registration-total { border:1px solid var(--line); padding:16px 18px; background:white; display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.registration-total strong { text-transform:uppercase; letter-spacing:.08em; font-size:11px; }
.registration-total span { font-size:24px; font-weight:900; }
.inline-empty-state { border:1px solid var(--line); background:#f7f7f5; padding:22px; margin-bottom:24px; }
.inline-empty-state strong { display:block; font-size:18px; margin-bottom:8px; }
.inline-empty-state p { color:var(--muted); line-height:1.5; margin:0 0 16px; }
.detail-list { margin:0; }
.detail-list div { display:grid; grid-template-columns:180px 1fr; padding:16px 0; border-bottom:1px solid var(--line); }
.detail-list dt { color:var(--muted); }
.detail-list dd { margin:0; font-weight:700; }
.tournament-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.tournament-summary div { display:flex; flex-direction:column; gap:8px; }
.tournament-summary strong { text-transform:uppercase; font-size:11px; letter-spacing:.08em; color:var(--muted); }
.category-list { border:1px solid var(--line); background:white; }
.category-row { display:grid; grid-template-columns:1.25fr 1.5fr auto; align-items:center; gap:24px; padding:18px 22px; border-bottom:1px solid var(--line); }
.category-row:last-child { border-bottom:0; }
.category-main { display:flex; flex-direction:column; align-items:flex-start; gap:10px; min-width:0; }
.category-main h3 { font-size:20px; line-height:1.2; letter-spacing:-.02em; margin:0; }
.category-details { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.category-details span { display:flex; flex-direction:column; gap:5px; color:var(--muted); font-size:14px; }
.category-details strong { color:var(--ink); text-transform:uppercase; letter-spacing:.08em; font-size:10px; }
.category-actions { display:flex; align-items:center; justify-content:flex-end; gap:14px; flex-wrap:wrap; }
.referee-list { border:1px solid var(--line); background:white; }
.referee-row { display:grid; grid-template-columns:72px 1fr 1.5fr auto; align-items:center; gap:18px; padding:18px 22px; border-bottom:1px solid var(--line); }
.referee-row:last-child { border-bottom:0; }
.referee-photo { width:64px; height:64px; border:1px solid var(--line); background:#f7f7f5; overflow:hidden; display:flex; align-items:center; justify-content:center; font-size:24px; font-weight:900; }
.referee-photo img,.referee-photo .image-fallback,.referee-photo .fallback-placeholder { width:100%; height:100%; object-fit:cover; display:flex; }
.referee-main h2 { font-size:22px; line-height:1.2; letter-spacing:-.02em; margin:0 0 6px; }
.referee-main p { color:var(--muted); margin:0; line-height:1.45; }
.referee-details { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.referee-details span { display:flex; flex-direction:column; gap:5px; color:var(--muted); font-size:14px; min-width:0; overflow-wrap:anywhere; }
.referee-details strong { color:var(--ink); text-transform:uppercase; letter-spacing:.08em; font-size:10px; }
.registered-athlete-list { border:1px solid var(--line); background:white; }
.registered-athlete-row { display:grid; grid-template-columns:1.25fr 1fr 1fr .8fr auto; align-items:center; gap:18px; padding:18px 22px; border-bottom:1px solid var(--line); }
.registered-athlete-row:last-child { border-bottom:0; }
.registered-athlete-row > div:first-child { display:flex; flex-direction:column; align-items:flex-start; gap:9px; }
.registered-athlete-row span { display:flex; flex-direction:column; gap:5px; color:var(--muted); font-size:14px; }
.registered-athlete-row strong { color:var(--ink); }
.registered-athlete-row span strong { text-transform:uppercase; letter-spacing:.08em; font-size:10px; }
.approval-table { background:white; border:1px solid var(--line); margin-top:36px; }
.organizer-registration-table {
  overflow:visible;
}
.organizer-registration-table table {
  border-collapse:separate;
  border-spacing:0;
  width:100%;
}
.organizer-registration-table th {
  background:#fafaf8;
  border-bottom:1px solid var(--line);
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  padding:15px 18px;
  text-align:left;
  text-transform:uppercase;
}
.organizer-registration-table td {
  border-bottom:1px solid var(--line);
  color:var(--ink);
  font-size:14px;
  padding:16px 18px;
  position:relative;
  vertical-align:middle;
}
.organizer-registration-table tbody tr:last-child td {
  border-bottom:0;
}
.organizer-registration-table tbody tr:hover {
  background:#fbfbfa;
}
.organizer-registration-table td strong {
  font-size:15px;
}
.table-actions-heading,
.table-actions-cell {
  text-align:right;
  width:72px;
}
.table-actions-cell .kebab-menu-panel {
  text-align:left;
}
.receipt-action-link {
  color:#174b91;
  font-size:13px;
  font-weight:900;
  text-decoration:none;
}
.receipt-action-link:hover {
  color:#cf1d2b;
}
.muted-value {
  color:var(--muted);
}
.inline-notice { margin:24px 0 0; padding:14px 16px; border:1px solid var(--line); background:#f8f7f4; font-weight:700; }
.search-bar { display:grid; grid-template-columns:1fr auto; gap:12px; align-items:end; margin:26px 0; }
.search-bar label { grid-column:1 / -1; font-weight:800; text-transform:uppercase; letter-spacing:.08em; font-size:11px; }
.search-bar input[type="search"] { width:100%; border:1px solid var(--line); padding:13px 14px; font:inherit; }
.weight-check-list { display:grid; gap:14px; margin-top:24px; }
.weight-check-row { display:grid; grid-template-columns:1.2fr 1.5fr minmax(180px,.7fr); gap:18px; align-items:center; padding:20px; border:1px solid var(--line); background:white; }
.weight-check-main h2 { margin:10px 0 6px; font-size:22px; }
.weight-check-main p { margin:0 0 4px; color:var(--muted); }
.attempt-list { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.attempt-slot { min-height:86px; border:1px solid var(--line); padding:12px; display:flex; flex-direction:column; gap:6px; }
.attempt-slot strong { font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.attempt-slot small { color:var(--muted); }
.attempt-form { display:grid; gap:8px; }
.attempt-form label { font-size:11px; text-transform:uppercase; letter-spacing:.08em; font-weight:800; }
.attempt-form input[type="number"] { width:100%; border:1px solid var(--line); padding:12px; font:inherit; }
.attempt-closed { justify-self:end; font-weight:800; color:var(--muted); }
.approval-row { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:20px; padding:20px 22px; border-bottom:1px solid var(--line); }
.approval-row:last-child { border-bottom:0; }
.approval-row > div:first-child { display:flex; flex-direction:column; gap:5px; }
.approval-row span { color:var(--muted); font-size:13px; }
.row-actions { display:flex; gap:8px; }
.kebab-menu {
  justify-self:end;
  position:relative;
}
.kebab-menu summary {
  align-items:center;
  background:white;
  border:1px solid transparent;
  border-radius:8px;
  color:var(--ink);
  cursor:pointer;
  display:inline-flex;
  height:36px;
  justify-content:center;
  list-style:none;
  width:36px;
}
.kebab-menu summary::-webkit-details-marker { display:none; }
.kebab-menu summary:hover,
.kebab-menu[open] summary {
  background:#f7f7f5;
  border-color:var(--line);
}
.kebab-menu-panel {
  background:white;
  border:1px solid var(--line);
  border-radius:10px;
  box-shadow:0 18px 42px rgba(20,22,26,.14);
  display:grid;
  min-width:190px;
  overflow:hidden;
  padding:8px 0;
  position:absolute;
  right:0;
  top:42px;
  z-index:30;
}
.kebab-menu-item,
.kebab-menu-panel .button_to button {
  align-items:center;
  background:white;
  border:0;
  color:var(--ink);
  cursor:pointer;
  display:flex;
  font:inherit;
  gap:12px;
  padding:12px 16px;
  text-align:left;
  text-decoration:none;
  width:100%;
}
.kebab-menu-item:hover,
.kebab-menu-panel .button_to button:hover {
  background:#f7f7f5;
}
.kebab-menu-panel .button_to {
  border-top:1px solid var(--line);
  margin:0;
}
.kebab-menu-danger,
.kebab-menu-panel .button_to .kebab-menu-danger {
  color:#d31220;
}
.kebab-menu-item .ui-icon,
.kebab-menu-panel .button_to button .ui-icon {
  flex:0 0 auto;
  height:18px;
  width:18px;
}
.approve-button,.reject-button { border:0; padding:10px 13px; font-weight:800; cursor:pointer; }
.approve-button { background:#176532; color:white; }
.reject-button { background:#eee; color:#8a1e1e; }
.flash { position:relative; z-index:20; padding:13px 20px; text-align:center; font-weight:700; transition:opacity .2s ease, transform .2s ease; }
.flash.notice { background:#e7f7ec; color:#176532; }
.flash.alert { background:#fde8e8; color:#9a1b1b; }
.flash.is-dismissing { opacity:0; transform:translateY(-6px); }

@media (max-width:900px) {
  .list-grid { grid-template-columns:1fr 1fr; }
  .page-heading { align-items:flex-start; flex-direction:column; }
  .approval-row { grid-template-columns:1fr; }
  .organizer-registration-table {
    overflow-x:auto;
  }
  .organizer-registration-table table {
    min-width:760px;
  }
  .organizer-profile-panel,.organizer-contact-list,.organizer-event-row { grid-template-columns:1fr; }
  .organizer-contact-list div { border-left:0; border-top:1px solid var(--line); padding:14px 0 0; }
  .category-row { grid-template-columns:1fr; align-items:flex-start; }
  .referee-row { grid-template-columns:1fr; align-items:flex-start; }
  .registered-athlete-row { grid-template-columns:1fr; align-items:flex-start; }
  .academy-show-header,.academy-show-identity { align-items:flex-start; }
  .academy-show-header { flex-direction:column; }
  .academy-show-identity { flex-direction:column; }
  .academy-contact-grid { grid-template-columns:1fr; }
  .academy-management-panel,.notification-card { grid-template-columns:1fr; }
  .notification-actions { align-items:flex-start; padding-right:0; }
  .tournament-status-header { align-items:flex-start; flex-direction:column; }
  .tournament-status-row { grid-template-columns:1fr; align-items:flex-start; }
  .tournament-status-row-header { display:none; }
  .filter-bar,.filter-bar.compact-filter,.tournament-filter-grid { grid-template-columns:1fr; }
  .filter-panel-header { align-items:flex-start; flex-direction:column; }
  .tournament-filter-actions { justify-content:flex-start; min-width:0; }
  .search-bar,.weight-check-row,.attempt-list { grid-template-columns:1fr; }
  .attempt-closed { justify-self:start; }
  .category-actions { justify-content:flex-start; }
}
@media (max-width:650px) {
  .app-frame { grid-template-columns:124px minmax(0,1fr); }
  .side-menu { padding:18px 10px; gap:24px; }
  .brand { font-size:13px; overflow-wrap:anywhere; }
  .side-nav-link { min-height:38px; font-size:12px; line-height:1.2; overflow-wrap:anywhere; }
  .side-account .status-pill { max-width:100%; overflow-wrap:anywhere; white-space:normal; }
  .list-grid,.form-grid.two-col,.tournament-summary,.news-board,.category-details { grid-template-columns:1fr; }
  .referee-details { grid-template-columns:1fr; }
  .checklist-group { grid-template-columns:1fr; }
  .form-grid .full { grid-column:auto; }
  .entity-meta { flex-direction:column; gap:10px; }
  .detail-list div { grid-template-columns:1fr; gap:5px; }
}

/* Professional UI refresh */
:root {
  --red:#c9162b;
  --ink:#101114;
  --muted:#686d76;
  --line:#e5e7eb;
  --paper:#f6f6f3;
  --panel:#ffffff;
  --soft:#fafafa;
  --shadow:0 18px 45px rgba(16,17,20,.07);
}
body { background:#f4f4f1; }
.app-frame { grid-template-columns:264px minmax(0,1fr); background:#f4f4f1; }
.side-menu { background:#fff; padding:26px 18px; gap:28px; }
.brand { padding:0 10px 20px; border-bottom:1px solid var(--line); }
.ui-icon { width:18px; height:18px; flex:0 0 auto; }
.icon-label { display:inline-flex!important; align-items:center; justify-content:center; gap:8px; }
.side-nav-link { gap:10px; border-radius:8px; color:#4c515a; padding:10px 12px; }
.side-nav-link:hover { background:#f7f7f5; }
.side-tournament { border-radius:8px; overflow:hidden; }
.side-tournament-links { padding:8px; gap:4px; }
.side-tournament-links a,.side-action-button,.side-disabled {
  display:flex;
  align-items:center;
  gap:8px;
  padding:7px 8px;
  border-radius:7px;
}
.side-tournament-links a:hover,.side-action-button:hover { background:#f7f7f5; }
.account-action { display:flex; align-items:center; gap:8px; padding:10px 12px; color:var(--muted); }
.nav-button,.primary-button {
  border:1px solid var(--red);
  border-radius:4px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:12px 18px;
  font-size:13px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  box-shadow:none;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
.nav-button:hover,.primary-button:hover { background:#111318; border-color:#111318; transform:translateY(-1px); }
.secondary-button {
  border:1px solid #cfd3d9;
  border-radius:4px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:12px 18px;
  font-size:13px;
  font-weight:900;
  letter-spacing:.06em;
  background:white;
  color:#20242a;
  text-transform:uppercase;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
.secondary-button:hover { border-color:#111318; background:#111318; color:white; transform:translateY(-1px); }
.icon-button { border-radius:4px; transition:border-color .16s ease,color .16s ease,transform .16s ease; }
.icon-button:hover { transform:translateY(-1px); }
.page-shell,.page-shell.organizer-page,.page-shell.organizer-directory-page { background:#f4f4f1; padding:64px 0 96px; }
.page-heading { margin-bottom:34px; }
.page-title { font-size:clamp(40px,5.2vw,68px); letter-spacing:-.045em; margin-bottom:14px; }
.page-copy { font-size:17px; line-height:1.55; max-width:680px; }
.breadcrumbs { margin-bottom:24px; font-size:12px; }
.list-grid { gap:18px; }
.entity-card {
  border-radius:8px;
  padding:24px;
  min-height:220px;
  box-shadow:0 1px 0 rgba(16,17,20,.02);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.entity-card:hover {
  transform:translateY(-2px);
  border-color:#d2d6dd;
  box-shadow:var(--shadow);
}
.tournament-visual {
  width:calc(100% + 48px);
  height:142px;
  margin:0 -24px 22px;
  background:linear-gradient(135deg,#101114 0%,#343842 62%,#c9162b 100%);
}
.tournament-banner,.organizer-profile-panel,.organizer-event-list,.category-list,.referee-list,.registered-athlete-list,.approval-table {
  border-radius:8px;
  overflow:hidden;
}
.organizer-profile-panel,.athlete-photo { box-shadow:var(--shadow); }
.form-card,.detail-card {
  margin-top:30px;
  border-radius:8px;
  padding:30px;
  box-shadow:0 1px 0 rgba(16,17,20,.02);
}
.form-grid input,.form-grid select,.form-grid textarea,
.filter-bar input,.filter-bar select,
.filter-field input,.filter-field select,
.search-bar input[type="search"],
.readonly-field,
.category-picker-select {
  border-radius:8px;
}
.filter-bar,.tournament-filter-panel {
  border-radius:8px;
  background:white;
  box-shadow:0 1px 0 rgba(16,17,20,.02);
}
.filter-bar label,.filter-field label {
  display:flex;
  align-items:center;
  gap:7px;
  color:#343842;
}
.filter-panel-header strong { font-size:21px; }
.search-field input { font-weight:800; }
.checklist-group,.organizer-picker,.payment-instructions,.category-picker,.registration-total,.inline-empty-state,.inline-notice,.weight-check-row,.athlete-photo {
  border-radius:8px;
}
.status-pill { align-items:center; }
.text-link.icon-label .ui-icon { width:16px; height:16px; }
.text-link:hover { text-decoration:none; color:#a81122; }
.draw-page {
  background:#f4f4f1;
}
.draw-page .container {
  max-width:1440px;
}
.draw-heading {
  align-items:flex-end;
  border-bottom:1px solid #d9d8d3;
  display:flex;
  gap:24px;
  justify-content:space-between;
  margin-bottom:30px;
  padding-bottom:24px;
}
.draw-heading .page-title {
  font-size:clamp(40px,5vw,72px);
  letter-spacing:-.045em;
}
.draw-heading-meta {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.draw-heading-meta span {
  background:white;
  border:1px solid #d9d8d3;
  border-radius:999px;
  color:#4b4f56;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  padding:9px 13px;
  text-transform:uppercase;
}
.draw-sheet {
  background:#fff;
  border:1px solid #d9d8d3;
  border-radius:2px;
  box-shadow:none;
  margin:0 0 32px;
  overflow:auto;
  padding:34px;
}
.draw-sheet-header {
  align-items:end;
  border-bottom:1px solid #d9d8d3;
  display:flex;
  gap:24px;
  justify-content:space-between;
  min-width:980px;
  margin-bottom:26px;
  padding-bottom:20px;
  text-align:left;
}
.draw-sheet-header span {
  display:block;
  color:#6f6e69;
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
  margin-bottom:12px;
  text-transform:uppercase;
}
.draw-sheet-header h2 {
  font-size:28px;
  letter-spacing:-.02em;
  line-height:1;
  margin:0;
}
.draw-sheet-header p {
  color:#6f6e69;
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
  margin:0;
  text-transform:uppercase;
}
.draw-bracket {
  --slot-height:174px;
  --match-height:136px;
  display:grid;
  grid-template-columns:repeat(var(--round-count), minmax(292px, 1fr));
  gap:24px;
  min-width:max(900px, calc(var(--round-count) * 316px));
  align-items:start;
}
.draw-round {
  display:grid;
}
.draw-round h3 {
  background:transparent;
  border-bottom:1px solid #d9d8d3;
  color:#6f6e69;
  font-size:13px;
  letter-spacing:.16em;
  margin:0;
  padding:0 0 13px;
  text-align:left;
  text-transform:uppercase;
}
.draw-round-matches {
  display:grid;
  grid-template-rows:repeat(var(--bracket-size), var(--slot-height));
  padding-top:14px;
  position:relative;
}
.draw-match {
  display:grid;
  grid-row:var(--match-row-start) / span var(--match-row-span);
  grid-template-columns:minmax(0,1fr);
  align-self:center;
  min-height:var(--match-height);
  position:relative;
}
.draw-match:has(.draw-scoreboard[open]) {
  min-height:348px;
  z-index:10;
}
.draw-round:not(:first-child) .draw-match::before {
  background:#c9c8c3;
  content:"";
  height:var(--connector-height);
  left:-12px;
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:1px;
}
.draw-round:not(:last-child) .draw-match-form::after {
  background:#c9c8c3;
  content:"";
  height:1px;
  position:absolute;
  right:-24px;
  top:50%;
  width:24px;
}
.draw-round:not(:first-child) .draw-match-form::before {
  background:#c9c8c3;
  content:"";
  height:1px;
  left:-24px;
  position:absolute;
  top:50%;
  width:24px;
}
.draw-match-number {
  align-items:center;
  background:#111318;
  border:1px solid #111318;
  border-radius:999px;
  color:white;
  display:flex;
  font-size:11px;
  font-weight:900;
  height:28px;
  justify-content:center;
  letter-spacing:.12em;
  min-width:34px;
  padding:0 9px;
  position:absolute;
  left:12px;
  top:-13px;
  z-index:3;
}
.draw-match-form {
  background:white;
  border:1px solid #d9d8d3;
  border-radius:2px;
  box-shadow:none;
  display:grid;
  gap:8px;
  min-height:var(--match-height);
  padding:18px 10px 10px;
  position:relative;
}
.draw-match:has(.draw-scoreboard[open]) .draw-match-form {
  min-height:348px;
}
.draw-entrant {
  align-items:center;
  border:0;
  border-radius:2px;
  display:grid;
  gap:8px;
  grid-template-columns:minmax(0,1fr) auto;
  min-height:38px;
  padding:9px 11px;
}
.draw-entrant-name {
  color:white;
  font-size:13px;
  font-weight:900;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.draw-entrant-result {
  background:rgba(255,255,255,.2);
  border:1px solid rgba(255,255,255,.34);
  border-radius:999px;
  color:white;
  font-size:10px;
  font-weight:900;
  padding:5px 8px;
  text-transform:uppercase;
}
.draw-entrant-red { background:#cf1d2b; }
.draw-entrant-blue { background:#174b91; }
.draw-entrant-empty {
  background:#f2f2ef;
  border:1px dashed #d7d6d1;
}
.draw-entrant-empty .draw-entrant-name {
  color:#8a8780;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.draw-scoreboard {
  border:1px solid #d9d8d3;
  border-radius:2px;
  display:grid;
  gap:8px;
  padding:0;
}
.draw-scoreboard summary {
  align-items:center;
  color:var(--ink);
  cursor:pointer;
  display:flex;
  font-size:12px;
  font-weight:900;
  justify-content:space-between;
  letter-spacing:.12em;
  list-style:none;
  padding:9px 10px;
  text-transform:uppercase;
}
.draw-scoreboard summary::-webkit-details-marker { display:none; }
.draw-scoreboard summary::after {
  color:#85827b;
  content:"+";
  font-size:18px;
  line-height:1;
}
.draw-scoreboard[open] summary::after {
  content:"-";
}
.draw-scoreboard summary small {
  background:#f4f4f1;
  border-radius:999px;
  color:#6f6e69;
  font-size:10px;
  letter-spacing:.08em;
  padding:4px 7px;
}
.draw-score-grid {
  align-items:center;
  display:grid;
  grid-template-columns:28px minmax(0,1fr) minmax(0,1fr);
  gap:6px;
  padding:0 10px;
}
.draw-score-grid span {
  color:#6f6e69;
  font-size:11px;
  font-weight:900;
  letter-spacing:.1em;
}
.draw-score-grid input,
.draw-score-grid output {
  border:1px solid #d9d8d3;
  border-radius:2px;
  font:inherit;
  font-size:13px;
  font-weight:900;
  min-height:32px;
  padding:5px 8px;
  text-align:center;
  width:100%;
}
.draw-score-grid output {
  color:var(--ink);
}
.draw-score-box-blue {
  background:#f3f7ff;
  border-color:#d5e2fb;
  color:#173f80;
}
.draw-score-box-red {
  background:#fff4f4;
  border-color:#f2cfd1;
  color:#9d101a;
}
.draw-score-grid-readonly {
  opacity:.92;
}
.draw-result-bar {
  align-items:center;
  background:#f4f4f1;
  border:1px solid #d9d8d3;
  border-radius:2px;
  display:flex;
  gap:10px;
  justify-content:space-between;
  margin:0 10px 10px;
  min-height:36px;
  padding:7px 10px;
}
.draw-result-bar span {
  color:#6f6e69;
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.draw-result-bar strong {
  font-size:13px;
  overflow:hidden;
  text-align:right;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.draw-result-bar-complete {
  background:#eef8f0;
  border-color:#c9e7d0;
}
.draw-save-button {
  align-items:center;
  background:#cf1d2b;
  border:0;
  border-radius:2px;
  color:white;
  cursor:pointer;
  display:inline-flex;
  gap:8px;
  justify-content:center;
  font:inherit;
  font-size:13px;
  font-weight:900;
  letter-spacing:.08em;
  margin:0 10px 10px;
  min-height:36px;
  padding:0 14px;
  text-transform:uppercase;
}
.draw-save-button:hover { background:#111318; }
.draw-save-button .ui-icon {
  height:16px;
  width:16px;
}
.draw-bye-match .draw-match-form,
.draw-pending-match .draw-match-form { background:#fbfbfa; }
.draw-bye-match,
.draw-pending-match {
  --match-height:104px;
}
.draw-bye-match .draw-result-bar { background:#fff; }
.registration-draw-card {
  background:#fbfbfa;
  border:1px solid #e1e2e4;
  border-radius:8px;
  display:grid;
  gap:10px;
  margin-top:12px;
  padding:12px;
}
.registration-draw-header {
  align-items:center;
  display:flex;
  gap:10px;
  justify-content:space-between;
}
.registration-draw-header strong {
  font-size:13px;
  text-align:right;
}
.registration-draw-card p {
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
  margin:0;
}
.draw-state-pill {
  background:#eef0f3;
  border-radius:999px;
  color:#343842;
  display:inline-flex;
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
  padding:6px 9px;
  text-transform:uppercase;
}
.draw-state-medal {
  background:#fff3bf;
  color:#7a5200;
}
.draw-profile-meta {
  display:grid;
  gap:10px;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.draw-profile-meta span,
.draw-profile-results div {
  background:white;
  border:1px solid #ececef;
  border-radius:6px;
  color:#343842;
  display:grid;
  gap:5px;
  padding:10px;
}
.draw-profile-meta strong,
.draw-profile-results span {
  color:var(--muted);
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.draw-profile-color {
  border-radius:999px;
  color:white;
  display:inline-flex;
  font-size:11px;
  font-style:normal;
  font-weight:900;
  justify-self:start;
  padding:5px 8px;
  text-transform:uppercase;
}
.draw-profile-color-red { background:#d81f32; }
.draw-profile-color-blue { background:#174ea6; }
.draw-profile-results {
  display:grid;
  gap:8px;
}
.draw-profile-results div {
  align-items:center;
  grid-template-columns:1fr auto auto auto auto;
}
.draw-profile-results strong {
  font-size:15px;
}
.draw-profile-results small {
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}
.draw-profile-results b {
  font-size:12px;
  text-transform:uppercase;
}

@media (max-width: 900px) {
  .draw-sheet { padding:18px; }
  .draw-sheet-header { min-width:760px; }
  .draw-bracket { grid-template-columns:repeat(var(--round-count), minmax(292px, 1fr)); min-width:max(760px, calc(var(--round-count) * 316px)); }
  .draw-profile-meta,.draw-profile-results div { grid-template-columns:1fr; }
}

@media (max-width: 800px) {
  .app-frame { grid-template-columns:180px minmax(0,1fr); }
}
@media (max-width:650px) {
  .app-frame { grid-template-columns:76px minmax(0,1fr); }
  .brand { font-size:11px; padding:0 6px 14px; }
  .side-nav-link span,.side-account .nav-button,.side-nav-group > span,.side-tournament summary,.side-tournament-links span,.side-disabled span,.account-action span { display:none; }
  .side-nav-link,.side-tournament-links a,.side-action-button,.side-disabled,.account-action { justify-content:center; padding:10px; }
}
