:root{
  --tour-navy:#071E3D;
  --tour-blue:#0b50cc;
  --tour-cyan:#0b50cc;
  --tour-ice:#eef2fb;
  --tour-text:#1C3447;
  --tour-sub:#748795;
  --tour-line:#E3EBF0;
  --tour-bg:#f6f8fb;
}

.tournament-page{
  min-height:100vh;
  background:var(--tour-bg);
  color:var(--tour-text);
}

.tournament-shell{
  width:min(1180px,calc(100% - 40px));
  margin:0 auto;
  padding:34px 0 70px;
}

.tournament-hero{
  min-height:230px;
  padding:38px 42px;
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(290px,.55fr);
  align-items:center;
  gap:30px;
  border-radius:25px;
  color:#fff;
  background:
    radial-gradient(circle at 85% 10%,rgba(11,80,204,.28),transparent 30%),
    linear-gradient(130deg,#061A34,#0A3153 70%,#075E89);
  box-shadow:0 22px 60px rgba(7,30,61,.14);
}

.tournament-hero>div:first-child>span,
.tournament-list-head span,
.tournament-detail-card>header span,
.tournament-admin-head span,
.tournament-admin-form section>header span{
  display:block;
  color:#0b50cc;
  font-size:12px;
  font-weight:900;
  letter-spacing:.15em;
}

.tournament-hero h1{
  margin:9px 0 12px;
  font-size:34px;
  line-height:1.25;
  letter-spacing:-.04em;
}

.tournament-hero h1 em{
  color:#0b50cc;
  font-style:normal;
}

.tournament-hero>div:first-child>p{
  margin:0;
  color:rgba(255,255,255,.7);
  font-size:14px;
  line-height:1.7;
}

.tournament-hero-card{
  padding:21px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:17px;
  background:rgba(255,255,255,.07);
}

.tournament-hero-card b{
  display:block;
  margin-bottom:7px;
  font-size:14px;
}

.tournament-hero-card p{
  margin:0;
  color:rgba(255,255,255,.68);
  font-size:12px;
  line-height:1.7;
}

.tournament-filter-card{
  margin-top:0;
  padding:18px;
  border:1px solid var(--tour-line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 6px 20px rgba(7,30,61,.04);
}

.tournament-filter-card form{
  display:grid;
  grid-template-columns:minmax(260px,1.6fr) minmax(150px,.7fr) minmax(150px,.7fr) auto;
  align-items:end;
  gap:10px;
}

.tournament-filter-card label>span,
.tournament-admin-grid label>span{
  display:block;
  margin:0 0 6px 2px;
  color:#647B8B;
  font-size:12px;
  font-weight:800;
}

.tournament-filter-card input,
.tournament-filter-card select,
.tournament-admin-grid input,
.tournament-admin-grid select,
.tournament-admin-grid textarea{
  width:100%;
  min-height:42px;
  border:1px solid #DCE6EC;
  border-radius:10px;
  background:#fbfcfe;
  color:#203D52;
  outline:none;
  font:inherit;
  font-size:14px;
}

.tournament-filter-card input,
.tournament-filter-card select,
.tournament-admin-grid input,
.tournament-admin-grid select{
  padding:0 11px;
}

.tournament-admin-grid textarea{
  min-height:110px;
  padding:11px;
  resize:vertical;
  line-height:1.6;
}

.tournament-filter-card input:focus,
.tournament-filter-card select:focus,
.tournament-admin-grid input:focus,
.tournament-admin-grid select:focus,
.tournament-admin-grid textarea:focus{
  border-color:#0b50cc;
  background:#fff;
  box-shadow:0 0 0 3px rgba(11,80,204,.08);
}

.tournament-filter-actions{
  display:flex;
  gap:7px;
}

.tournament-filter-actions a,
.tournament-filter-actions button{
  height:42px;
  padding:0 15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  text-decoration:none;
  font-size:12px;
  font-weight:850;
  cursor:pointer;
}

.tournament-filter-actions a{
  border:1px solid #DCE6EC;
  background:#fff;
  color:#627886;
}

.tournament-filter-actions button{
  border:0;
  background:var(--tour-blue);
  color:#fff;
}

.tournament-list-head{
  margin:32px 2px 13px;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:16px;
}

.tournament-list-head span,
.tournament-detail-card>header span,
.tournament-admin-head span,
.tournament-admin-form section>header span{
  color:#0b50cc;
}

.tournament-list-head h2,
.tournament-detail-card>header h2,
.tournament-admin-form section>header h2{
  margin:4px 0 0;
  font-size:22px;
  letter-spacing:-.035em;
}

.tournament-admin-link{
  padding:9px 13px;
  border-radius:10px;
  background:var(--tour-navy);
  color:#fff;
  text-decoration:none;
  font-size:12px;
  font-weight:850;
}

.tournament-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.tournament-row{
  min-height:135px;
  padding:17px 18px;
  display:grid;
  grid-template-columns:96px minmax(0,1fr) auto;
  align-items:center;
  gap:18px;
  border:1px solid var(--tour-line);
  border-radius:17px;
  background:#fff;
  box-shadow:0 4px 16px rgba(7,30,61,.035);
}

.tournament-date-box{
  min-height:92px;
  padding:12px 8px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  border-radius:13px;
  background:linear-gradient(145deg,#f3f6fd,#eaeffa);
  text-align:center;
}

.tournament-date-box small{
  color:#7A909E;
  font-size:12px;
}

.tournament-date-box b{
  margin-top:2px;
  color:#0b50cc;
  font-size:22px;
  letter-spacing:-.04em;
}

.tournament-date-box em{
  margin-top:1px;
  color:#0b50cc;
  font-size:12px;
  font-style:normal;
}

.tournament-row-main{
  min-width:0;
}

.tournament-row-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}

.tournament-row-top>div{
  display:flex;
  gap:5px;
}

.tournament-status,
.tournament-region,
.tournament-file-count{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 8px;
  border-radius:999px;
  font-size:12px;
  font-weight:850;
}

.tournament-status.open{
  background:#E7F8EF;
  color:#25845B;
}

.tournament-status.soon{
  background:#eef2fb;
  color:#083da3;
}

.tournament-status.closed,
.tournament-status.ended{
  background:#F0F3F5;
  color:#6F7E87;
}

.tournament-status.cancelled{
  background:#FFF0F0;
  color:#B55151;
}

.tournament-status.info{
  background:#F2F6FF;
  color:#5870B5;
}

.tournament-region{
  background:#F4F7F9;
  color:#6E7F8A;
}

.tournament-file-count{
  background:#FFF8E7;
  color:#9E7A26;
}

.tournament-row h3{
  margin:8px 0 6px;
  font-size:17px;
  letter-spacing:-.035em;
}

.tournament-row h3 a{
  color:#203C51;
  text-decoration:none;
}

.tournament-row h3 a:hover{
  color:#0b50cc;
}

.tournament-row-main>p{
  margin:0 0 9px;
  overflow:hidden;
  color:#718491;
  font-size:12px;
  white-space:nowrap;
  text-overflow:ellipsis;
}

.tournament-row-meta{
  display:flex;
  flex-wrap:wrap;
  gap:5px 15px;
  color:#84949F;
  font-size:12px;
}

.tournament-detail-btn{
  min-width:84px;
  height:38px;
  padding:0 12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #d4dcef;
  border-radius:10px;
  color:#0b50cc;
  text-decoration:none;
  font-size:12px;
  font-weight:850;
}

.tournament-empty{
  margin-top:20px;
  padding:50px 20px;
  border:1px dashed #ccd4e7;
  border-radius:18px;
  background:#fff;
  color:#85949E;
  text-align:center;
}

.tournament-empty b{
  display:block;
  color:#4E687A;
  font-size:16px;
}

.tournament-empty p{
  margin:6px 0 15px;
  font-size:12px;
}

.tournament-empty a{
  color:#0b50cc;
}

.tournament-flash{
  margin-bottom:13px;
  padding:11px 14px;
  border-radius:10px;
  font-size:12px;
  font-weight:700;
}

.tournament-flash.success{
  background:#E9F9F0;
  color:#347B58;
}

.tournament-flash.error{
  background:#FFF0F0;
  color:#A94F4F;
}

.tournament-detail-top{
  margin-bottom:14px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.tournament-detail-top a{
  color:#607A8C;
  text-decoration:none;
  font-size:12px;
  font-weight:800;
}

.tournament-detail-hero{
  padding:34px;
  border-radius:22px;
  background:#fff;
  border:1px solid var(--tour-line);
}

.tournament-detail-badges{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}

.tournament-detail-hero h1{
  margin:13px 0 8px;
  color:#17364D;
  font-size:31px;
  line-height:1.28;
  letter-spacing:-.045em;
}

.tournament-detail-hero>p{
  margin:0;
  color:#718592;
  font-size:14px;
  line-height:1.7;
}

.tournament-detail-actions{
  margin-top:20px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.tournament-detail-actions a{
  min-height:42px;
  padding:0 15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #d7deed;
  border-radius:10px;
  background:#fff;
  color:#557082;
  text-decoration:none;
  font-size:12px;
  font-weight:850;
}

.tournament-detail-actions a.primary{
  border-color:var(--tour-blue);
  background:var(--tour-blue);
  color:#fff;
}

.tournament-detail-grid{
  margin-top:14px;
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);
  gap:14px;
}

.tournament-detail-card{
  padding:23px;
  border:1px solid var(--tour-line);
  border-radius:18px;
  background:#fff;
}

.tournament-detail-card>header{
  margin-bottom:17px;
}

.tournament-info-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  margin:0;
  border-top:1px solid #EDF1F4;
}

.tournament-info-grid>div{
  padding:14px 10px;
  border-bottom:1px solid #EDF1F4;
}

.tournament-info-grid dt{
  margin-bottom:5px;
  color:#8A99A3;
  font-size:12px;
  font-weight:800;
}

.tournament-info-grid dd{
  margin:0;
  color:#354F61;
  font-size:12px;
  font-weight:750;
  line-height:1.55;
}

.tournament-document-list{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.tournament-document-list>a{
  padding:10px;
  display:grid;
  grid-template-columns:46px minmax(0,1fr) 20px;
  align-items:center;
  gap:10px;
  border:1px solid #e1e5f0;
  border-radius:12px;
  color:inherit;
  text-decoration:none;
}

.tournament-document-list>a:hover{
  border-color:#afc2ee;
  background:#f8fafe;
}

.file-type{
  height:40px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:#eef2fb;
  color:#0b50cc;
  font-size:12px;
  font-weight:900;
}

.tournament-document-list b{
  display:block;
  color:#3B5566;
  font-size:12px;
}

.tournament-document-list small{
  display:block;
  margin-top:3px;
  color:#94A1AA;
  font-size:12px;
}

.tournament-document-list em{
  color:#0b50cc;
  font-size:16px;
  font-style:normal;
}

.tournament-no-file{
  padding:25px 12px;
  border-radius:11px;
  background:#F7F9FA;
  color:#95A1A9;
  text-align:center;
  font-size:12px;
}

.tournament-source-box{
  margin-top:14px;
  padding:13px;
  border-radius:11px;
  background:#F8FAFB;
}

.tournament-source-box span{
  display:block;
  color:#9AA6AE;
  font-size:12px;
}

.tournament-source-box b{
  display:block;
  margin-top:3px;
  color:#536C7B;
  font-size:12px;
}

.tournament-source-box p{
  margin:6px 0 0;
  color:#82919A;
  font-size:12px;
  line-height:1.55;
}

.tournament-guide-card{
  margin-top:14px;
}

.tournament-guide-chips{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
}

.tournament-guide-chips>div{
  padding:13px;
  border-radius:11px;
  background:#f6f8fc;
}

.tournament-guide-chips span{
  display:block;
  margin-bottom:5px;
  color:#8A9AA4;
  font-size:12px;
}

.tournament-guide-chips b{
  color:#456173;
  font-size:12px;
  line-height:1.55;
}

.tournament-description{
  margin-top:14px;
  padding-top:15px;
  border-top:1px solid #E8EEF2;
  color:#5D7382;
  font-size:12px;
  line-height:1.8;
}

.tournament-admin-head{
  margin-bottom:15px;
  padding:25px 28px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-radius:18px;
  background:var(--tour-navy);
  color:#fff;
}

.tournament-admin-head h1{
  margin:5px 0;
  font-size:24px;
}

.tournament-admin-head p{
  margin:0;
  color:rgba(255,255,255,.64);
  font-size:12px;
}

.tournament-admin-head>a{
  color:#fff;
  font-size:12px;
  text-decoration:none;
}

.tournament-admin-form{
  display:flex;
  flex-direction:column;
  gap:13px;
}

.tournament-admin-form>section{
  padding:22px;
  border:1px solid var(--tour-line);
  border-radius:17px;
  background:#fff;
}

.tournament-admin-form section>header{
  margin-bottom:16px;
}

.tournament-admin-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:11px;
}

.tournament-admin-grid .wide{
  grid-column:1/-1;
}

.tournament-admin-grid label small{
  display:block;
  margin-top:5px;
  color:#92A0A9;
  font-size:12px;
}

.tournament-check{
  min-height:42px;
  display:flex;
  align-items:center;
  gap:8px;
  padding-top:20px;
}

.tournament-check input{
  width:17px;
  min-height:17px;
}

.tournament-check span{
  margin:0 !important;
}

.tournament-admin-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
}

.tournament-admin-actions a,
.tournament-admin-actions button{
  min-height:42px;
  padding:0 17px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  font-size:12px;
  font-weight:850;
  text-decoration:none;
}

.tournament-admin-actions a{
  border:1px solid #D9E4EA;
  background:#fff;
  color:#6D818E;
}

.tournament-admin-actions button{
  border:0;
  background:var(--tour-blue);
  color:#fff;
  cursor:pointer;
}

.tournament-admin-files{
  margin-bottom:10px;
  display:flex;
  flex-direction:column;
  gap:6px;
}

.tournament-admin-files>div{
  padding:9px 11px;
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid #E4EAEE;
  border-radius:9px;
}

.tournament-admin-files span{
  padding:4px 6px;
  border-radius:6px;
  background:#eef2fb;
  color:#0b50cc;
  font-size:12px;
  font-weight:900;
}

.tournament-admin-files b{
  color:#506A7A;
  font-size:12px;
}

.tournament-admin-note{
  color:#8B9AA3;
  font-size:12px;
}

@media(max-width:900px){
  .tournament-hero{
    grid-template-columns:1fr;
  }

  .tournament-filter-card form{
    grid-template-columns:1fr 1fr;
  }

  .tournament-filter-card .keyword,
  .tournament-filter-actions{
    grid-column:1/-1;
  }

  .tournament-detail-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:760px){
  .tournament-shell{
    width:calc(100% - 24px);
    padding:16px 0 95px;
  }

  .tournament-hero{
    min-height:0;
    padding:25px 19px;
    border-radius:18px;
    gap:17px;
  }

  .tournament-hero h1{
    font-size:26px;
  }

  .tournament-hero>div:first-child>p{
    font-size:12px;
  }

  .tournament-filter-card{
    padding:13px;
    border-radius:14px;
  }

  .tournament-filter-card form{
    grid-template-columns:1fr;
  }

  .tournament-filter-card .keyword,
  .tournament-filter-actions{
    grid-column:auto;
  }

  .tournament-filter-actions>*{
    flex:1;
  }

  .tournament-list-head{
    margin-top:23px;
  }

  .tournament-row{
    padding:13px;
    grid-template-columns:64px minmax(0,1fr);
    gap:11px;
  }

  .tournament-date-box{
    min-height:76px;
  }

  .tournament-date-box b{
    font-size:17px;
  }

  .tournament-row h3{
    font-size:16px;
  }

  .tournament-row-main>p{
    white-space:normal;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
  }

  .tournament-row-meta{
    gap:4px 10px;
    font-size:12px;
  }

  .tournament-file-count{
    display:none;
  }

  .tournament-detail-btn{
    grid-column:1/-1;
    width:100%;
  }

  .tournament-detail-hero{
    padding:22px 17px;
    border-radius:17px;
  }

  .tournament-detail-hero h1{
    font-size:23px;
  }

  .tournament-detail-actions a{
    flex:1;
  }

  .tournament-detail-card{
    padding:17px;
  }

  .tournament-info-grid{
    grid-template-columns:1fr;
  }

  .tournament-guide-chips{
    grid-template-columns:1fr;
  }

  .tournament-admin-head{
    padding:20px;
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
  }

  .tournament-admin-grid{
    grid-template-columns:1fr;
  }

  .tournament-admin-grid .wide{
    grid-column:auto;
  }

  .tournament-admin-form>section{
    padding:16px;
  }

  .tournament-admin-actions{
    position:sticky;
    bottom:70px;
    z-index:5;
    padding:9px;
    border:1px solid #DDE7ED;
    border-radius:12px;
    background:rgba(255,255,255,.96);
  }

  .tournament-admin-actions>*{
    flex:1;
  }
}


/* Tournament V4 - poster */
.tournament-poster-thumb{
  width:96px;
  height:124px;
  display:block;
  overflow:hidden;
  border-radius:12px;
  background:#eef1f7;
  border:1px solid #E0E9EE;
}

.tournament-poster-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
}

.tournament-detail-hero.has-poster{
  display:grid;
  grid-template-columns:250px minmax(0,1fr);
  gap:26px;
  align-items:start;
}

.tournament-detail-poster{
  overflow:hidden;
  border:1px solid #E0E8ED;
  border-radius:15px;
  background:#F3F6F8;
}

.tournament-detail-poster img{
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
  object-position:center top;
}

.tournament-detail-copy{
  min-width:0;
}

.tournament-admin-poster-preview{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px;
  border:1px solid #E3EBF0;
  border-radius:12px;
  background:#f8f9fc;
}

.tournament-admin-poster-preview img{
  width:72px;
  height:96px;
  object-fit:cover;
  border-radius:8px;
}

.tournament-admin-poster-preview span{
  margin:0 !important;
  color:#617787 !important;
  font-size:12px !important;
}

@media(max-width:760px){
  .tournament-poster-thumb{
    width:74px;
    height:96px;
  }

  .tournament-detail-hero.has-poster{
    grid-template-columns:95px minmax(0,1fr);
    gap:14px;
  }

  .tournament-detail-poster img{
    aspect-ratio:3/4;
  }

  .tournament-detail-hero.has-poster h1{
    font-size:20px;
  }
}


/* Tournament V9 - source badge + rich list */
.tournament-source-badge{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 8px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
}

.tournament-source-badge.source-baf{
  background:#FFF1EA;
  color:#D55C24;
}

.tournament-source-badge.source-wekkuk{
  background:#EEF2FF;
  color:#4E62C7;
}

.tournament-source-badge.source-other{
  background:#F2F6F8;
  color:#667C89;
}

.tournament-row-meta-main b{
  margin-right:3px;
  color:#586F7F;
  font-weight:900;
}

.tournament-row-facts{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:10px;
}

.tournament-row-facts span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:27px;
  padding:0 9px;
  border-radius:8px;
  background:#f5f7fb;
  color:#607684;
  font-size:12px;
  line-height:1.35;
}

.tournament-row-facts b{
  color:#0b50cc;
  font-size:12px;
  font-weight:900;
}

@media(max-width:760px){
  .tournament-row-facts{
    gap:5px;
  }

  .tournament-row-facts span{
    min-height:25px;
    padding:0 7px;
    font-size:12px;
  }

  .tournament-row-meta-main{
    display:grid;
    gap:4px;
  }
}


/* Tournament V10 poster placeholder */
.tournament-poster-placeholder{
  width:96px;
  height:124px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  border:1px solid #dde2ee;
  border-radius:12px;
  background:linear-gradient(180deg,#f6f8fd 0%,#ecf1fb 100%);
  color:#083da3;
}
.tournament-poster-placeholder span{font-size:24px;line-height:1;}
.tournament-poster-placeholder b{font-size:16px;font-weight:950;color:#071E3D;}
.tournament-poster-placeholder small{font-size:12px;font-weight:900;letter-spacing:.16em;color:#6583c9;}
@media(max-width:760px){
  .tournament-poster-placeholder{width:74px;height:96px;}
  .tournament-poster-placeholder span{font-size:20px;}
  .tournament-poster-placeholder b{font-size:14px;}
}
