:root { --gold:#a9761f; --gold-deep:#7c5514; --critical:#a6362c; --ink:#15161a; --muted:#767a82; --line:#e9e7e2; --paper:#f8f6f1; --corner-red:#e3312a; --corner-red-tint:#fceceb; --corner-blue:#4169e1; --corner-blue-tint:#ecf1fc; }
* { box-sizing:border-box; }
[hidden] { display:none!important; }
html { scroll-behavior:smooth; }
body { margin:0; font-family:"IBM Plex Sans", Arial, Helvetica, sans-serif; color:var(--ink); background:white; }
h1,h2,h3,h4,.brand { font-family:"Source Serif 4", Georgia, serif; }
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; height:100dvh; overflow-y:auto; -webkit-overflow-scrolling:touch; 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 { display:inline-flex; align-items:center; gap:9px; font-weight:700; letter-spacing:0; font-size:19px; } .brand span { color:var(--gold); }
.brand-icon { width:28px; height:28px; flex:0 0 auto; }
.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(--gold); background:#f7f7f5; }
.side-nav-badge { margin-left:auto; background:var(--gold); color:white; font-size:11px; font-weight:800; line-height:1; padding:4px 7px; border-radius:999px; }
.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(--gold); }
.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(--gold); }
.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(--gold); 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(--gold); }
.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(--gold); border-color:var(--gold); }
.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(--gold); 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(--gold); }
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(--gold); }
.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(--gold); 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(--gold); 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:#d9a94a; }
.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:#d9a94a; }
.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; flex-wrap:wrap; align-items:center; }
.footer-links { display:flex; gap:16px; }
.footer-links a { color:var(--muted); }
.footer-links a:hover { color:var(--gold); }
.site-footer { margin-top:auto; }
@media (max-width: 800px) { .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(--gold); 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; }
.page-actions { align-items:center; display:flex; flex:0 0 auto; gap:10px; justify-content:flex-end; }
.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; margin-bottom: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: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-review-actions {
  border-top:1px solid var(--line);
  display:flex;
  gap:10px;
  padding:14px 16px 16px;
}
.academy-card-review-actions form {
  flex:1;
}
.academy-card-review-actions .approve-button,
.academy-card-review-actions .reject-button {
  width:100%;
}
.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 {
  align-items:center;
  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-athlete-link {
  color:var(--ink);
}
.notification-athlete-link:hover {
  color:var(--gold);
}
.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-form {
  position:absolute;
  right:12px;
  top:12px;
}
.notification-dismiss {
  align-items:center;
  background:white;
  border:1px solid transparent;
  border-radius:8px;
  color:var(--muted);
  display:flex;
  height:32px;
  justify-content:center;
  width:32px;
}
.notification-dismiss:hover {
  background:#f7f7f5;
  border-color:var(--line);
  color:var(--gold);
}
.notification-dismiss .ui-icon {
  height:16px;
  width:16px;
}
.notification-actions {
  align-items:center;
  display:flex;
  gap:10px;
  justify-content:flex-end;
  padding-right:34px;
}
.consent-panel {
  background:#fafafa;
  border:1px solid var(--line);
  border-radius:8px;
  display:grid;
  gap:6px;
  padding:18px;
}
.consent-panel .checkbox-option {
  align-items:flex-start;
}
.consent-panel .checkbox-option span {
  line-height:1.5;
}
.terms-card {
  display:grid;
  gap:12px;
}
.terms-card h2 {
  font-size:22px;
  letter-spacing:-.02em;
  margin:8px 0 0;
}
.terms-card p {
  color:var(--muted);
  line-height:1.6;
  margin:0;
}
.terms-card ul {
  color:var(--muted);
  line-height:1.6;
  margin:0;
  padding-left:20px;
}
.terms-card li {
  margin:0 0 4px;
}
.terms-card .terms-updated {
  color:var(--muted);
  font-size:13px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  margin:0 0 4px;
}
.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:center;
  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:center;
  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;
}
.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%,#a9761f 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; }
.card-links .button_to { align-items:center; display:inline-flex; margin:0; }
.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; }
.status-category_review { background:#fdf1da; color:#7c5514; }
.text-link { font-weight:800; color:var(--gold); }
.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; }
.required-marker { color:var(--critical); margin-left:3px; }
.form-grid input,.form-grid select,.form-grid textarea { width:100%; border:1px solid #cfd0d4; background-color:white; padding:13px 14px; font:inherit; min-height:48px; }
.form-grid input:focus,.form-grid select:focus { outline:2px solid rgba(169,118,31,.2); border-color:var(--gold); }
select {
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23767a82' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:36px;
  cursor:pointer;
  transition:border-color .15s ease, box-shadow .15s ease;
}
select:hover { border-color:var(--gold); }
select:focus {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23a9761f' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
}
select:disabled { cursor:not-allowed; opacity:.6; }
.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; }
.mode-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:24px; }
.mode-card { border:1px solid var(--line); background:white; padding:26px; display:flex; flex-direction:column; gap:14px; }
.mode-card:hover { border-color:var(--gold); }
.mode-card h3 { font-size:19px; }
.mode-card p { color:var(--muted); font-size:13.5px; margin:0; flex-grow:1; }
.cart-strip { display:grid; gap:10px; margin:20px 0; }
.cart-strip-heading { display:flex; align-items:baseline; justify-content:space-between; }
.cart-strip-heading strong { font-size:13px; }
.cart-strip-row { display:flex; align-items:center; gap:14px; border:1px solid var(--line); background:white; padding:12px 16px; }
.cart-strip-row-main { flex-grow:1; display:flex; flex-direction:column; gap:2px; }
.cart-strip-row-main strong { font-size:14px; }
.cart-strip-row-main span { font-size:12px; color:var(--muted); }
.cart-strip-row-age { font-size:11px!important; }
.cart-strip-row-stale { color:var(--critical)!important; font-weight:700; }
.cart-strip-row-fee { font-size:13px; font-weight:800; }
.roster-list { display:grid; gap:10px; }
.roster-row { display:flex; align-items:center; gap:14px; border:1px solid var(--line); background:white; padding:14px 16px; text-decoration:none; color:inherit; }
.roster-row.selected { border-color:var(--gold); background:#fdf9f0; box-shadow:0 0 0 3px rgba(169,118,31,.12); }
.roster-row.added { opacity:.6; }
.roster-radio { width:18px; height:18px; border-radius:999px; border:2px solid #cfd0d4; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.roster-row.selected .roster-radio { border-color:var(--gold); }
.roster-radio-dot { width:9px; height:9px; border-radius:999px; background:var(--gold); }
.roster-row-main { flex-grow:1; }
.roster-row-main strong { display:block; font-size:14.5px; }
.roster-row-main span { font-size:12.5px; color:var(--muted); }
.roster-row-added-pill { margin-left:auto; font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#176532; background:#e7f7ec; padding:4px 8px; border-radius:999px; }
.team-type-option { flex:1; display:flex; align-items:center; gap:12px; border:1px solid var(--line); background:white; padding:16px 18px; text-decoration:none; color:inherit; }
.team-type-option.selected { border-color:var(--gold); background:#fdf9f0; box-shadow:0 0 0 3px rgba(169,118,31,.12); }
.team-type-option strong { font-size:14.5px; }
.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; }
.checkbox-option .option-hint { display:block; font-weight:500; color:var(--muted); font-size:12.5px; margin-top:3px; }
.other-options { grid-column:1/-1; display:grid; gap:10px; }
.other-row input { width:100%; }
.tab-strip { display:flex; flex-wrap:wrap; gap:8px 24px; border-bottom:1px solid var(--line); margin:28px 0 0; }
.tab-strip-button { border:0; background:none; padding:0 0 14px; font:inherit; font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); cursor:pointer; border-bottom:2px solid transparent; }
.tab-strip-button:hover { color:var(--ink); }
.tab-strip-button.is-active { color:var(--ink); border-bottom-color:var(--gold); }
.profile-section { margin-top:36px; }
.profile-section:first-child { margin-top:0; }
.profile-section .form-section-heading { margin-top:0; padding-top:0; border-top:0; }
.profile-section .form-card,.profile-section .detail-card { margin-top:20px; }
.delete-account-panel { display:flex; flex-direction:column; align-items:flex-start; gap:16px; }
.profile-summary { display:grid; grid-template-columns:repeat(auto-fit, minmax(160px,1fr)); gap:16px 24px; }
.profile-summary > div { display:flex; flex-direction:column; gap:4px; min-width:0; }
.profile-summary span { font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.profile-summary strong { font-size:15px; overflow-wrap:anywhere; }
.field-hint { margin:8px 0 0; color:var(--muted); font-size:13px; }
.password-field-wrapper { position:relative; }
.password-field-wrapper input { padding-right:48px; }
.password-toggle-button { position:absolute; top:0; right:0; height:48px; width:44px; display:flex; align-items:center; justify-content:center; background:none; border:0; padding:0; cursor:pointer; color:var(--muted); }
.password-toggle-button:hover { color:var(--ink); }
.password-toggle-button .ui-icon { width:19px; height:19px; }
.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(--gold); }
.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:#fdf3f1; border-left:4px solid var(--critical); padding:16px 18px; margin-bottom:24px; }
.form-errors ul { margin-bottom:0; }
.field_with_errors {
  display:contents;
}
.field_with_errors input,
.field_with_errors select,
.field_with_errors textarea {
  background:#fdf5f4;
  border-color:var(--critical)!important;
  box-shadow:0 0 0 3px rgba(166,54,44,.12);
}
.field_with_errors input:focus,
.field_with_errors select:focus,
.field_with_errors textarea:focus {
  outline:2px solid rgba(166,54,44,.22);
}
.field-error-message {
  color:#a81122;
  display:block;
  font-size:12px;
  font-weight:800;
  line-height:1.35;
  margin:7px 0 0;
  min-height:17px;
}
.field-error-placeholder {
  visibility:hidden;
}
.field-error-message.is-resolved {
  visibility:hidden;
}
.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-color: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-color:white; min-height:48px; }
.filter-field input:focus,.filter-field select:focus { outline:2px solid rgba(169,118,31,.2); border-color:var(--gold); }
.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; }
.payment-qr { margin:14px 0; }
.payment-qr svg { display:block; width:200px; max-width:100%; height:auto; border:1px solid var(--line); background:white; padding:10px; }
.payment-qr .field-hint { margin-top:8px; }
.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-invalid { border-color:var(--critical); background:#fdf5f4; box-shadow:0 0 0 3px rgba(166,54,44,.12); }
.category-picker-invalid .category-picker-select { border-color:var(--critical); }
.category-picker-row { position:relative; }
.category-picker-select { width:100%; border:1px solid #cfd0d4; background-color:white; padding:13px 14px; font:inherit; min-height:48px; }
.category-remove-button {
  position:absolute; top:-9px; right:-9px; z-index:1;
  width:26px; height:26px; padding:0; border-radius:999px;
  border:1px solid var(--line); background:white; color:var(--muted);
  display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer; box-shadow:0 2px 5px rgba(16,17,20,.12);
}
.category-remove-button:hover { color:white; background:var(--critical); border-color:var(--critical); }
.category-remove-button .ui-icon { width:13px; height:13px; }
.category-remove-button[hidden],.add-more-category-option[hidden] { display:none!important; }
.registration-nav-links { display:flex; flex-wrap:wrap; gap:10px 32px; margin:14px 0 28px; padding-bottom:20px; border-bottom:1px solid var(--line); }
.registration-nav-links .text-link { font-size:13.5px; }
.registration-nav-links .ui-icon { width:15px; height:15px; }
.icon-flip { transform:scaleX(-1); }
.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; }
.stacked-detail {
  display:block;
  line-height:1.45;
}
.stacked-results { margin:0; padding:0; list-style:none; display:grid; gap:12px; }
.stacked-results li { padding-bottom:12px; border-bottom:1px solid var(--line); line-height:1.5; }
.stacked-results li:last-child { border-bottom:none; padding-bottom:0; }
.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; }
.registered-athlete-actions { display:flex; flex-direction:column; align-items:flex-end; gap:8px; }
.academy-athlete-list .registered-athlete-row {
  grid-template-columns:minmax(240px,1.4fr) minmax(110px,.6fr) minmax(110px,.6fr) minmax(130px,.7fr) 48px;
}
.academy-athlete-list .registered-athlete-row,
.tournament-status-row {
  text-align:left;
}
.academy-athlete-list .registered-athlete-row > span,
.tournament-status-row > div,
.tournament-status-row > span {
  align-self:center;
}
.academy-athlete-list .kebab-menu {
  align-self:center;
  justify-self:end;
}
.athlete-event-table {
  background:white;
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:0 12px 30px rgba(16,17,20,.05);
  overflow:hidden;
}
.athlete-event-row {
  align-items:center;
  border-bottom:1px solid var(--line);
  display:grid;
  gap:14px 22px;
  grid-template-columns:minmax(0,1.35fr) minmax(0,.7fr) minmax(0,1.15fr) auto;
  min-height:92px;
  padding:20px 24px;
}
.athlete-event-row:last-child {
  border-bottom:0;
}
.athlete-event-row:hover {
  background:#fcfcfb;
}
.athlete-event-main,
.athlete-event-meta,
.athlete-event-notes {
  display:grid;
  gap:6px;
  min-width:0;
}
.athlete-event-main strong {
  font-size:18px;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.athlete-event-main span,
.athlete-event-notes span {
  color:var(--muted);
  font-size:13px;
  font-weight:700;
  line-height:1.45;
}
.athlete-event-meta span {
  color:var(--muted);
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.athlete-event-meta strong {
  font-size:14px;
  line-height:1.35;
}
.athlete-event-row > .status-pill {
  justify-self:end;
  white-space:nowrap;
}
.tournament-register-button {
  line-height:1;
  text-align:center;
  white-space:nowrap;
}
.athlete-event-empty {
  padding:24px;
}
.athlete-event-empty strong {
  display:block;
  font-size:18px;
  margin-bottom:6px;
}
.athlete-event-empty span {
  color:var(--muted);
  display:block;
  line-height:1.45;
}
.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:#7c5514;
}
.muted-value {
  color:var(--muted);
}
.inline-notice { margin:24px 0 0; padding:14px 16px; border:1px solid var(--line); background:#f8f7f4; font-weight:700; }
.inline-notice-warning { display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; border-color:#e8c67a; background:#fdf6e3; color:#7c5514; }
.inline-notice-warning strong { flex-basis:100%; }
.inline-notice-warning[hidden] { display:none; }
.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:36px; margin-top:24px; }
.weight-check-category-group { display:grid; gap:14px; }
.weight-check-category-heading { margin:0; }
.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; transition:background-color 1.2s ease, border-color 1.2s ease; }
.weight-check-row-highlighted { background-color:#fdf6e3; border-color:var(--gold); box-shadow:0 0 0 3px rgba(169,118,31,.18); }
.weight-check-row-decision { background-color:#fdf6e3; border-color:var(--gold); box-shadow:0 0 0 3px rgba(169,118,31,.16); }
.decision-panel { grid-column:1 / -1; border-top:1px dashed #d8c9a0; margin-top:6px; padding-top:16px; display:grid; gap:12px; }
.decision-panel-copy strong { font-size:14px; }
.decision-panel-copy p { margin:3px 0 0; font-size:12.5px; color:#7c5514; }
.category-picker-panel { background:white; border:1px solid var(--line); padding:16px; display:grid; gap:10px; }
.category-picker-panel label { font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); display:block; }
.category-picker-panel select { width:100%; }
.decision-panel .reject-button { justify-self:start; }
.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 { align-items:center; border:0; display:inline-flex; justify-content:center; min-height:40px; padding:10px 13px; font-weight:800; cursor:pointer; text-align:center; }
.approve-button { background:#176532; color:white; }
.reject-button { background:#eee; color:#8a1e1e; }
.academy-review-panel {
  align-items:center;
  background:#f7fbf8;
  border:1px solid #cfe8d6;
  display:flex;
  gap:18px;
  justify-content:space-between;
  margin:18px 0 24px;
  padding:18px;
}
.academy-review-panel strong {
  display:block;
  font-size:18px;
  margin-bottom:4px;
}
.academy-review-panel p {
  color:var(--muted);
  margin:0;
}
.academy-review-actions {
  display:flex;
  flex:0 0 auto;
  gap:10px;
}
.delete-action-button { line-height:1; white-space:nowrap; }
.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; }
  .registered-athlete-actions { align-items:flex-start; flex-direction:row; flex-wrap:wrap; }
  .athlete-event-row { grid-template-columns:1fr; align-items:flex-start; }
  .athlete-event-row > .status-pill { justify-self: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) {
  .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 {
  --panel:#ffffff;
  --soft:#fafafa;
  --shadow:0 18px 45px rgba(16,17,20,.07);
}
body { background:#f5f3ee; }
.app-frame { grid-template-columns:264px minmax(0,1fr); background:#f5f3ee; }
.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; width:100%; padding:10px 12px; color:var(--muted); border-radius:8px; }
.account-action:hover { background:#f7f7f5; color:var(--gold); }
.nav-button,.primary-button {
  border:1px solid var(--gold);
  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%,#a9761f 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:#7c5514; }
/* Draw / bracket */
.bracket-page { padding:24px; overflow-x:auto; }
.bracket-page .brackets-viewer {
  min-width:max-content;
  --primary-background:#fff;
  --secondary-background:var(--paper);
  --font-color:var(--ink);
  --win-color:var(--gold);
  --loss-color:var(--critical);
  --label-color:var(--muted);
  --hint-color:var(--muted);
  --connector-color:#d8d4c8;
  --border-color:var(--line);
  --border-hover-color:var(--gold);
  --border-selected-color:var(--gold-deep);
}
.brackets-viewer .participant:nth-of-type(1) .name:not(.hint) { color:var(--corner-red); }
.brackets-viewer .participant:nth-of-type(2) .name:not(.hint) { color:var(--corner-blue); }
.match-score-list { display:grid; gap:14px; margin-top:24px; }
.match-score-card { border:1px solid var(--line); background:white; padding:20px 22px; display:grid; gap:16px; }
.match-score-heading h3 { margin:8px 0 0; font-size:18px; }
.match-score-fields { display:grid; gap:16px; }
.match-rounds { display:grid; gap:12px; }
.match-round-row { display:grid; grid-template-columns:90px 1fr 1fr 1.4fr; gap:10px; align-items:center; }
.match-round-label { font-size:11px; text-transform:uppercase; letter-spacing:.08em; font-weight:800; color:var(--muted); }
.match-round-row input,.match-round-row select { border:1px solid var(--line); padding:10px; font:inherit; width:100%; }
.match-score-card-locked { background:#fafaf8; }
.locked-pill { display:inline-flex; align-items:center; gap:6px; }
.locked-pill .ui-icon { width:13px; height:13px; }
.match-round-row-locked { padding:8px 0; border-bottom:1px solid var(--line); }
.match-round-row-locked:last-child { border-bottom:none; }
.match-round-row-locked .corner-name-red,.match-round-row-locked .corner-name-blue { font-size:16px; font-weight:800; }
.match-round-row input.corner-input-red { border-color:var(--corner-red); }
.match-round-row input.corner-input-blue { border-color:var(--corner-blue); }
.match-round-result { font-size:13px; font-weight:800; color:var(--muted); }
.match-round-result.is-decided { color:var(--ink); }
.match-round-result.is-tied { color:var(--critical); }
.match-round-superiority { grid-column:1/-1; display:grid; gap:8px; }
.match-round-superiority[hidden] { display:none; }
.form-field { display:grid; gap:8px; }
.form-field label { font-size:11px; text-transform:uppercase; letter-spacing:.08em; font-weight:800; }
.form-field select { border:1px solid var(--line); padding:10px; font:inherit; }

.corner-name-red { color:var(--corner-red); font-weight:700; }
.corner-name-blue { color:var(--corner-blue); font-weight:700; }

.match-corner-legend { display:flex; gap:10px; flex-wrap:wrap; margin-top:6px; }
.corner-tag { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; padding:4px 10px; border-radius:999px; }
.corner-tag::before { content:""; width:8px; height:8px; border-radius:50%; display:inline-block; }
.corner-tag-red { color:var(--corner-red); background:var(--corner-red-tint); }
.corner-tag-red::before { background:var(--corner-red); }
.corner-tag-blue { color:var(--corner-blue); background:var(--corner-blue-tint); }
.corner-tag-blue::before { background:var(--corner-blue); }

.corner-toggle { display:flex; gap:10px; }
.corner-toggle-option { position:relative; flex:1; display:flex; align-items:center; justify-content:center; gap:8px; border:1.5px solid var(--line); border-radius:8px; padding:12px 14px; cursor:pointer; font-weight:700; text-align:center; transition:background-color .15s ease, border-color .15s ease, color .15s ease; }
.corner-toggle-option input { position:absolute; opacity:0; width:0; height:0; }
.corner-toggle-option:hover { border-color:var(--muted); }
.corner-toggle-red { color:var(--corner-red); }
.corner-toggle-blue { color:var(--corner-blue); }
.corner-toggle-option:has(input:checked) { color:white; }
.corner-toggle-option.corner-toggle-red:has(input:checked) { background:var(--corner-red); border-color:var(--corner-red); }
.corner-toggle-option.corner-toggle-blue:has(input:checked) { background:var(--corner-blue); border-color:var(--corner-blue); }
.medal-standings { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.medal-standings > div { display:flex; flex-direction:column; gap:6px; }
.medal-standings strong { font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }

/* Mobile navigation: below the breakpoint, the sidebar becomes an off-canvas
   panel triggered from a slim top bar, instead of permanently squeezing the
   page content into a sliver next to a cramped sidebar. */
.mobile-topbar { display:none; }
.mobile-nav-backdrop { display:none; }
.side-menu-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.mobile-nav-close { display:none; border:none; background:transparent; padding:6px; margin:0; cursor:pointer; color:inherit; border-radius:6px; }
.mobile-nav-toggle { border:1px solid var(--line); background:white; border-radius:8px; width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; flex:0 0 auto; }
.mobile-topbar-actions { display:flex; align-items:center; gap:8px; }
.mobile-topbar-actions .button_to { margin:0; }
.mobile-topbar-logout {
  display:inline-flex; align-items:center; gap:6px;
  border:1px solid var(--critical); background:#fff; color:var(--critical);
  border-radius:8px; height:40px; padding:0 12px; font-weight:700; font-size:13px;
  cursor:pointer; white-space:nowrap;
}
.mobile-topbar-logout .ui-icon { width:16px; height:16px; flex:0 0 auto; }
.mobile-topbar-join {
  display:inline-flex; align-items:center;
  background:var(--gold); color:#fff; border-radius:8px;
  height:40px; padding:0 14px; font-weight:700; font-size:13px;
  white-space:nowrap;
}

@media (max-width:860px) {
  .app-frame { display:block; }
  .mobile-topbar {
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 20px; border-bottom:1px solid var(--line); background:white;
    position:sticky; top:0; z-index:25;
  }
  .mobile-topbar .brand { margin:0; }
  .side-menu {
    position:fixed; top:0; left:0; width:280px; max-width:82vw;
    transform:translateX(-100%); transition:transform .25s ease;
    z-index:40; padding:22px 20px; box-shadow:0 20px 60px rgba(0,0,0,0);
  }
  .side-menu.is-open { transform:translateX(0); box-shadow:0 20px 60px rgba(0,0,0,.3); }
  .mobile-nav-backdrop {
    display:block; position:fixed; inset:0; background:rgba(15,15,20,.45);
    z-index:30; opacity:0; pointer-events:none; transition:opacity .2s ease;
  }
  .mobile-nav-backdrop.is-open { opacity:1; pointer-events:auto; }
  body.mobile-nav-open { overflow:hidden; }
  .mobile-nav-close { display:inline-flex; align-items:center; justify-content:center; }
  .side-account { gap:12px; }
  .account-action {
    justify-content:center;
    min-height:46px;
    border:1px solid var(--line);
    background:#fff;
    color:var(--ink);
  }
  .account-action span { font-size:15px; }
  .page-shell,.page-shell.organizer-page,.page-shell.organizer-directory-page { padding:28px 0 64px; }
  .container { width:min(1120px, calc(100% - 32px)); }
}

@media (max-width:480px) {
  .container { width:min(1120px, calc(100% - 24px)); }
  .page-title { font-size:clamp(30px,9vw,44px); }
}
