/* LoR Brand Profile v1.1 — light technical / event information treatment.
   Official supplied logo; no web fonts or remote assets are needed. */
:root {
  --lor-core: #003087;
  --lor-signal: #0454fc;
  --lor-navy: #082948;
  --lor-technical: #07599b;
  --lor-fog: #eef5f8;
  --lor-steel: #b8cbd6;
  --lor-void: #05070b;
  --lor-display: 'Bahnschrift SemiCondensed', 'Arial Narrow', Impact, Arial, sans-serif;
  font-family: Inter, Helvetica, Arial, sans-serif;
  color: var(--lor-navy);
  background: var(--lor-fog);
}
header { min-height: 112px; height: auto; border-bottom: 3px solid var(--lor-core); padding-top: 24px; padding-bottom: 24px; gap: 32px; }
.brand { display:flex; align-items:center; gap:28px; letter-spacing:0; }
.lor-logo { display:block; width:180px; height:auto; }
.brand .product-lockup { color:var(--lor-navy); border-left:1px solid var(--lor-steel); padding:5px 0 5px 27px; }
.product-lockup>strong { font-family:var(--lor-display); font-size:30px; letter-spacing:-.7px; }
.brand .product-lockup strong span { color:var(--lor-core); }
.brand small { color:var(--lor-technical); font:700 8px Arial,sans-serif; letter-spacing:1.5px; margin-top:7px; }
nav a { color:var(--lor-core); padding:8px 0; border-bottom:2px solid transparent; }
nav a:hover,nav a[aria-current='page'] { border-bottom-color:var(--lor-signal); }
.page-heading { background:var(--lor-navy); color:white; border-left:4px solid var(--lor-signal); border-radius:2px; padding:28px 30px; }
h1,h2,.event-stats b,.score,.preview-total,.scoring-title>b,.hero-empty b { font-family:var(--lor-display); font-stretch:condensed; }
h1 { text-transform:uppercase; letter-spacing:-.7px; }
h2 { color:var(--lor-navy); text-transform:uppercase; letter-spacing:.3px; padding-bottom:12px; border-bottom:1px solid var(--lor-steel); }
h2 small { font-family:Arial,sans-serif; }
.page-heading p { color:#d5e3ed; }
.page-heading .eyebrow { color:#fff; display:inline-block; padding:6px 8px; border:1px solid #6188b2; font-size:9px; letter-spacing:1.7px; }
.page-heading .event-stats small,.page-heading .event-stats em { color:#c5d9e7; }
.page-heading .secondary { background:white; color:var(--lor-core); }
.event-stats b { font-variant-numeric:tabular-nums; }
.match,.panel,.table-wrap { border-color:var(--lor-steel); border-radius:5px; }
.featured { border-color:var(--lor-core); box-shadow:none; }
.match-top { background:var(--lor-navy); color:white; border-bottom:0; }
.match-top>span:not(.badge) { color:#c6d9e7; }
.match-top .badge.scheduled { background:#284762; color:#fff; }
.match-top .badge.current { background:#fff; color:var(--lor-core); }
.match-top .badge.official { background:#d8e7f2; color:var(--lor-navy); }
.alliance.orange { border-color:#dc802c; background:#fff6ec; }
.alliance.blue { border-color:var(--lor-signal); background:var(--lor-fog); }
.featured .alliance small { color:#4a6174; }
.score,.preview-total { font-variant-numeric:tabular-nums; }
th { background:var(--lor-navy); color:#fff; }
td { border-color:#e0e9ef; }
tbody tr:nth-child(even) { background:#f5f9fb; }
.rank { background:var(--lor-fog); color:var(--lor-navy); border-radius:3px; }
.rank.first { background:var(--lor-core); color:#fff; }
.emphasis { color:var(--lor-core); }
.eyebrow { color:var(--lor-core); }
button,.button { background:var(--lor-core); border-radius:3px; font-family:Arial,sans-serif; }
.secondary { background:var(--lor-fog); color:var(--lor-core); border:1px solid var(--lor-steel); }
.danger { color:#9c352c; background:#fbefed; border:1px solid #e8c3be; }
input,textarea,select { background:#f7fafc; border-color:var(--lor-steel); border-radius:3px; }
input:focus,textarea:focus,select:focus { outline-color:var(--lor-core); }
button:focus-visible,a:focus-visible { outline:3px solid var(--lor-signal); outline-offset:4px; }
.score-side { background:var(--lor-fog); border-color:var(--lor-signal); border-radius:3px; }
.score-side.orange { background:#fff6ec; border-color:#dc802c; }
.score-side h3 { color:var(--lor-navy); }
.schedule-row { border-color:#dce6ee; }
.blue-text { color:var(--lor-core); }
.empty { border-color:var(--lor-steel); border-radius:3px; color:#526a7c; }
.hero-empty b { color:var(--lor-navy); }
.footnote { color:#526a7c; }
footer { background:var(--lor-void); color:#c0d1de; border-top:3px solid var(--lor-core); }
.referee-page main { max-width:1100px; padding-top:16px; }
.referee-page .page-heading { margin:0 0 20px; padding:18px 24px; }
.referee-page h1 { font-size:32px; }
.referee-page .page-heading p { margin:7px 0 0; }
.referee-panel { max-width:920px; margin:0 auto; }
.ref-match-bar { display:flex; align-items:center; gap:12px; margin:0 0 22px; }
.ref-match-bar select { flex:1; min-width:0; margin:0; }
.ref-match-bar button { flex-shrink:0; margin:0; }
.referee-panel>label { margin-bottom:7px; }
.referee-page .score-side input { min-height:48px; font-size:28px; }
.referee-page .score-side p { min-height:0; font-weight:700; font-size:15px; }
.referee-page .score-side label { margin-bottom:12px; }
.referee-page .score-side h3 { margin-top:0; }
.referee-page .scoring-title { padding:0 0 16px; }
.referee-page .preview-total { font-size:28px; }
.schedule-page main { max-width:1350px; padding-top:18px; }
.schedule-page .page-heading { margin:0 0 26px; padding:20px 24px; }
.schedule-page h1 { font-size:34px; }
.schedule-page .page-heading p { margin:7px 0 0; }
.schedule-round { margin-bottom:28px; }
.schedule-list-head,.public-match { display:grid; grid-template-columns:60px minmax(0,1fr) 22px minmax(0,1fr) 85px 90px; align-items:center; gap:14px; padding:12px 18px; }
.schedule-list-head { background:var(--lor-navy); color:#fff; font-size:9px; line-height:1.5; letter-spacing:.6px; border-radius:4px 4px 0 0; }
.public-match-list { padding:0; margin:0; list-style:none; border:1px solid var(--lor-steel); border-top:0; border-radius:0 0 4px 4px; overflow:hidden; }
.public-match { background:#fff; border-bottom:1px solid #dce6ee; font-size:13px; }
.public-match:last-child { border-bottom:0; }
.public-match:nth-child(even) { background:#f7fafc; }
.public-match.current { background:#e5efff; box-shadow:inset 4px 0 var(--lor-signal); }
.public-match-number { font-family:var(--lor-display); font-size:21px; color:var(--lor-navy); }
.public-alliance strong { display:block; font-weight:600; line-height:1.5; overflow-wrap:anywhere; }
.public-match .badge { margin:0; justify-self:start; }
.public-match .badge.current { background:var(--lor-core); color:white; }
.public-result { font-weight:700; font-size:18px; font-variant-numeric:tabular-nums; }
.mobile-alliance-label { display:none; }
.compact-schedule { table-layout:fixed; width:100%; font-size:14px; }
.compact-schedule th { height:28px; padding:5px 7px; letter-spacing:.3px; font-size:9px; position:sticky; top:0; z-index:1; }
.compact-schedule th.orange-text,.compact-schedule th.blue-text { color:#fff; }
.compact-schedule th:nth-child(1) { width:48px; }
.compact-schedule th:nth-child(2) { width:30px; }
.compact-schedule th:nth-child(5) { width:85px; }
.compact-schedule td { padding:4px 7px; height:36px; }
.compact-schedule td span { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:1.25; }
.compact-schedule td small { display:block; font-size:7px; letter-spacing:.5px; color:var(--lor-technical); }
.compact-schedule .compact-result { font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
.compact-schedule tr.active-match { background:#dceaff; }
.compact-schedule tr.active-match td:first-child { box-shadow:inset 3px 0 var(--lor-signal); }
.schedule-key { display:inline-block; width:8px; height:8px; background:var(--lor-signal); margin-right:3px; }
.dashboard-schedule { display:flex; flex-direction:column; min-width:0; }
.dashboard-schedule .table-wrap { flex:1; min-height:0; overflow:auto; scrollbar-width:thin; }
.dashboard-schedule .footnote { flex-shrink:0; font-size:10px; margin:7px 0 0; }
@media(min-width:650px) {
  .dashboard-page .dashboard-board { grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr); gap:14px; }
  .dashboard-page .compact-schedule { font-size:13px; }
  .dashboard-page .compact-schedule th { font-size:8px; padding:5px; }
  .dashboard-page .compact-schedule th:nth-child(1) { width:39px; }
  .dashboard-page .compact-schedule th:nth-child(2) { width:24px; }
  .dashboard-page .compact-schedule th:nth-child(5) { width:78px; }
  .dashboard-page .compact-schedule td { padding:3px 5px; height:38px; }
}

@media(max-width:650px) {
  .schedule-list-head { display:none; }
  .public-match-list { border-top:1px solid var(--lor-steel); border-radius:4px; }
  .public-match { grid-template-columns:42px minmax(0,1fr) 18px minmax(0,1fr); gap:10px; padding:12px; }
  .public-match .badge { grid-column:2; }
  .public-result { grid-column:4; font-size:16px; }
  .public-alliance strong { font-size:12px; }
  .mobile-alliance-label { display:block; font-size:8px; letter-spacing:1px; margin-bottom:5px; }
  .public-match-number { font-size:18px; }
}
@media(max-width:650px) {
  .ref-match-bar { flex-wrap:wrap; }
  .ref-match-bar select { flex-basis:100%; }
  .referee-page .score-side p { font-size:12px; min-height:42px; }
  .referee-page .score-side label { font-size:11px; }
}
/* Display dashboard: use the available screen, with rankings beside the field. */
.dashboard-page .ranking-pager { display:flex; align-items:center; justify-content:space-between; gap:4px; color:#526a7c; font-size:10px; }
.dashboard-page .ranking-pager button { padding:3px 9px; margin:0; }
@media(min-width:650px) {
  body.dashboard-page { height:100dvh; display:grid; grid-template-rows:64px minmax(0,1fr) 22px; overflow:hidden; }
  .dashboard-page header { min-height:0; padding:8px 20px; flex-wrap:nowrap; gap:20px; }
  .dashboard-page .lor-logo { width:120px; }
  .dashboard-page .brand { gap:18px; }
  .dashboard-page .brand .product-lockup { padding:3px 0 3px 18px; }
  .dashboard-page .product-lockup>strong { font-size:24px; }
  .dashboard-page .brand small { font-size:7px; margin-top:4px; }
  .dashboard-page nav { gap:20px; font-size:11px; }
  .dashboard-page main { width:100%; height:100%; margin:0; max-width:none; min-height:0; padding:10px 18px; }
  .dashboard-page #app { height:100%; display:grid; grid-template-rows:minmax(0,1fr); gap:0; }
  .dashboard-page #notice:empty { display:none; }
  .dashboard-page section { min-height:0; margin:0; }
  .dashboard-page .page-heading { padding:8px 16px; margin:0; flex-direction:row; align-items:center; gap:15px; }
  .dashboard-page .page-heading>div:first-child { min-width:0; }
  .dashboard-page .page-heading h1 { font-size:26px; line-height:1; margin:4px 0 0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
  .dashboard-page .page-heading .eyebrow { font-size:7px; padding:0; border:0; }
  .dashboard-page .event-stats { gap:22px; flex-shrink:0; }
  .dashboard-page .event-stats b { font-size:23px; line-height:1; }
  .dashboard-page .event-stats em { font-size:14px; }
  .dashboard-page .event-stats small { font-size:7px; }
  .dashboard-board { min-height:0; display:grid; grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr); gap:16px; }
  .dashboard-matches { min-height:0; display:grid; grid-template-rows:1fr 1fr 1fr; gap:10px; }
  .dashboard-matches section { display:flex; flex-direction:column; }
  .dashboard-page h2 { flex-shrink:0; font-size:15px; line-height:18px; margin:0 0 6px; padding:0 0 4px; gap:6px; }
  .dashboard-page h2 small { font-size:8px; letter-spacing:.6px; }
  .dashboard-page .match { min-width:0; min-height:0; }
  .dashboard-page .match-top,.dashboard-page .featured .match-top { padding:5px 9px; gap:8px; }
  .dashboard-page .match-top b { font-size:11px; }
  .dashboard-page .badge { padding:3px 5px; font-size:8px; }
  .dashboard-page .alliance,.dashboard-page .featured .alliance,.dashboard-page .upcoming .alliance,.dashboard-page .recent .alliance { min-height:0; padding:5px 8px; align-items:center; }
  .dashboard-page .alliance>div { min-width:0; }
  .dashboard-page .alliance strong,.dashboard-page .featured .alliance strong,.dashboard-page .upcoming .alliance strong { font-size:clamp(11px,1vw,17px); line-height:1.2; margin:2px 0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
  .dashboard-page .alliance small { display:none; }
  .dashboard-page .score { font-size:23px; line-height:1; padding-left:6px; }
  .dashboard-page .featured { flex:1; display:grid; grid-template-columns:1fr 1fr; grid-template-rows:26px minmax(0,1fr); }
  .dashboard-page .featured .match-top { grid-column:1/-1; }
  .dashboard-page .featured .alliance { padding:8px 12px; }
  .dashboard-page .featured .alliance small { display:block; font-size:8px; margin:0 0 6px; }
  .dashboard-page .featured .alliance strong { font-size:clamp(14px,1.5vw,24px); }
  .dashboard-page .featured .score { font-size:clamp(28px,3vw,48px); letter-spacing:-1px; }
  .dashboard-page .upcoming,.dashboard-page .recent { flex:1; min-height:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .dashboard-page .upcoming .match,.dashboard-page .recent .match { display:grid; grid-template-rows:26px 1fr 1fr; }
  .dashboard-page .upcoming .match-top>span:not(.badge) { display:none; }
  .dashboard-page .upcoming .score { display:none; }
  .dashboard-page .empty { min-height:0; padding:12px; display:flex; flex-direction:column; justify-content:center; font-size:12px; }
  .dashboard-page .hero-empty { flex:1; }
  .dashboard-page .hero-empty b { font-size:22px; }
  .dashboard-page .empty p { margin:6px 0; font-size:12px; }
  .dashboard-rankings { display:flex; flex-direction:column; }
  .dashboard-rankings .table-wrap { flex:1; min-height:0; overflow:hidden; }
  .dashboard-rankings table { table-layout:fixed; font-size:12px; }
  .dashboard-rankings th { height:30px; padding:5px 5px; font-size:8px; letter-spacing:0; }
  .dashboard-rankings td { height:var(--rank-row-height,30px); padding:2px 5px; overflow:hidden; text-overflow:ellipsis; }
  .dashboard-rankings th:nth-child(1) { width:38px; }
  .dashboard-rankings th:nth-child(3) { width:43px; }
  .dashboard-rankings th:nth-child(4) { width:53px; }
  .dashboard-rankings th:nth-child(5) { width:49px; }
  .dashboard-rankings th:nth-child(n+6),.dashboard-rankings td:nth-child(n+6) { display:none; }
  .dashboard-rankings .rank { width:22px; height:calc(var(--rank-row-height,30px) - 6px); }
  .dashboard-page .ranking-pager { min-height:24px; flex-shrink:0; font-size:9px; }
  .dashboard-rankings .footnote { flex-shrink:0; font-size:9px; line-height:1.4; margin:3px 0 0; }
  .dashboard-page footer { padding:5px 18px; font-size:8px; line-height:9px; border-top-width:1px; }
}
@media(max-width:950px) {
  header { flex-wrap:wrap; gap:20px; }
  nav { margin-left:auto; }
}
@media(max-width:650px) {
  header { padding:20px 5vw; gap:18px; }
  .brand { gap:18px; }
  .lor-logo { width:126px; }
  .brand .product-lockup { padding-left:17px; }
  .product-lockup>strong { font-size:24px; }
  .brand small { font-size:7px; letter-spacing:.7px; }
  nav { width:100%; margin:0; justify-content:space-between; flex-wrap:nowrap; gap:14px; }
  .connection { width:auto; text-align:left; font-size:9px; }
  .page-heading { padding:22px 20px; }
}

@media(min-width:650px) and (max-width:1100px) {
  .dashboard-page header { padding-left:12px; padding-right:12px; gap:12px; }
  .dashboard-page nav { gap:9px; font-size:10px; }
  .dashboard-page .brand { gap:10px; }
  .dashboard-page .lor-logo { width:100px; }
  .dashboard-page .brand .product-lockup { padding-left:10px; }
  .dashboard-page .product-lockup>strong { font-size:21px; }
}

.compact-schedule .orange-result { color:#aa642d; }
.compact-schedule .blue-result { color:var(--lor-core); }
.compact-schedule .tie-result { color:var(--lor-navy); }
.playoff-setup-top { display:flex; align-items:center; gap:24px; }
.playoff-setup-top label { width:240px; flex-shrink:0; }
.playoff-setup-top p { max-width:650px; }
.alliance-entry-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.alliance-entry-grid fieldset { min-width:0; border:1px solid var(--lor-steel); border-radius:4px; padding:12px; background:var(--lor-fog); }
.alliance-entry-grid legend { font-family:var(--lor-display); color:var(--lor-core); font-size:19px; padding:0 5px; }
.alliance-entry-grid label:last-child { margin:0; }
.alliance-entry-grid select { background:white; }
.playoff-phase { display:flex; align-items:center; gap:18px; }
.playoff-phase>div { flex:1; }
.playoff-phase p { margin:5px 0 0; font-size:12px; }
.playoff-alliance-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.playoff-alliance-list>div { display:flex; align-items:center; gap:10px; padding:12px; border:1px solid var(--lor-steel); border-radius:4px; background:#fff; font-size:12px; }
.playoff-alliance-list b { color:var(--lor-core); }
.bracket-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:start; }
.bracket-match { background:white; border:1px solid var(--lor-steel); border-radius:4px; overflow:hidden; margin-bottom:12px; }
.bracket-match.current { border-color:var(--lor-signal); outline:1px solid var(--lor-signal); }
.bracket-match.cancelled { opacity:.5; }
.bracket-match .match-top { padding:10px; gap:8px; flex-wrap:wrap; }
.bracket-match .match-top>span:not(.badge) { font-size:8px; }
.bracket-side { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border-bottom:1px solid #e0e9ef; }
.bracket-side b,.bracket-side span { display:block; font-size:12px; }
.bracket-side b { margin-bottom:4px; }
.bracket-side.orange-text { background:#fff6ec; }
.bracket-side.blue-text { background:var(--lor-fog); }
.bracket-side>strong { font-size:24px; }
.pending-source { color:#526a7c; }
.champion-banner { padding:24px; background:var(--lor-navy); border-left:4px solid var(--lor-signal); }
.champion-banner h2,.champion-banner p,.champion-banner .eyebrow { color:white; }
.champion-banner h2 { margin-top:12px; }
.compact-schedule tr.cancelled { opacity:.5; }
@media(max-width:1000px) {
  .alliance-entry-grid,.playoff-alliance-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bracket-columns { grid-template-columns:1fr; }
  .dashboard-page nav { gap:7px; font-size:9px; }
}
@media(max-width:650px) {
  .playoff-setup-top,.playoff-phase { flex-wrap:wrap; }
  .playoff-setup-top { gap:0; }
  .playoff-alliance-list { grid-template-columns:1fr; }
  nav { flex-wrap:wrap; }
}
