/* FixMaç TV — tasarım v2 stilleri. Kaynak: fixmac-tv-tasarim-v2/style.css
   (seçiciler ve değerler değiştirilmedi, yalnızca okunur biçimde yazıldı).
   Yazı tipleri @import yerine index.html içindeki <link> ile yüklenir: @import
   tarayıcıyı CSS inmeden font isteğine başlatamaz, <link> + preconnect başlatır.
   app.js davranışı için gereken ekler dosyanın SONUNDA ayrı blokta. */

:root {
  color-scheme: dark;
  --bg: #060f1e;
  --panel: #0c192c;
  --border: #253248;
  --red: #ed3347;
  --muted: #7c8ca5;
  --gold: #ffdc65;
}
* {
  box-sizing: border-box;
}
[hidden] {
  display: none !important;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  color: #eff3fa;
  background:
    radial-gradient(ellipse at 0% 35%, #0e254252, transparent 45%),
    radial-gradient(ellipse at 100% 5%, #182a4f50, transparent 45%), var(--bg);
  font:
    12px Inter,
    Arial,
    sans-serif;
}
body:before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background-image: radial-gradient(#a2b6ef18 1px, transparent 1px);
  background-size: 37px 37px;
  mask-image: linear-gradient(#000, transparent 90%);
}
button,
input {
  font: inherit;
}
button,
a {
  -webkit-tap-highlight-color: transparent;
}
button {
  cursor: pointer;
  color: inherit;
  background: none;
  border: 0;
}
a {
  color: inherit;
  text-decoration: none;
}
button:focus-visible,
a:focus-visible,
input:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}
svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}
.icon-library {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}
.site-wrap {
  width: min(1140px, calc(100% - 48px));
  margin: auto;
}
.announcement {
  height: 37px;
  border-bottom: 1px solid #203047;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  color: #a9b5c7;
  font-size: 10px;
}
.announcement > span:first-child {
  display: flex;
  align-items: center;
  gap: 10px;
}
.announcement b {
  font-size: 8px;
  letter-spacing: 1px;
  color: #ff7181;
  background: #531e303f;
  padding: 4px 6px;
  border-radius: 3px;
}
.preview-badge {
  font-size: 8px;
  letter-spacing: 1px;
  color: #718098;
  white-space: nowrap;
}
header {
  height: 86px;
  display: flex;
  align-items: center;
  gap: 30px;
}
.logo {
  display: flex;
  align-items: center;
  gap: 10px;
}
.logo-mark {
  position: relative;
  display: grid;
  place-items: center;
  background: linear-gradient(150deg, #ff4b5e, #b60e29);
  width: 43px;
  height: 45px;
  clip-path: polygon(
    25% 0,
    75% 0,
    100% 25%,
    100% 75%,
    75% 100%,
    25% 100%,
    0 75%,
    0 25%
  );
  font-size: 30px;
  font-weight: 900;
  font-style: italic;
  padding-right: 6px;
}
.logo-mark span {
  position: absolute;
  right: 6px;
  top: 19px;
  font-size: 12px;
  color: #ffb0b6;
}
.logo strong {
  font-size: 26px;
  letter-spacing: -1.2px;
  font-weight: 900;
}
.logo strong > span {
  font-weight: 500;
}
.logo em {
  font: 800 12px Inter;
  color: var(--red);
  margin-left: 5px;
  letter-spacing: 0;
}
nav {
  display: flex;
  margin-left: auto;
  gap: 7px;
  height: 100%;
  align-items: center;
}
nav button {
  height: 63px;
  min-width: 86px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
  justify-content: center;
  border-radius: 5px;
  color: #8b9bb1;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.4px;
}
nav button svg {
  width: 23px;
  height: 23px;
}
nav button.active,
nav button:hover {
  color: #fff;
  background: linear-gradient(#19283a66, #10203700);
}
nav button.active svg {
  color: var(--red);
}
.support {
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 9px 12px;
  font-size: 10px;
  color: #b0bbcc;
}
.support span {
  margin-left: 16px;
  color: #f37684;
}
.top-banner {
  min-height: 48px;
  display: flex;
  align-items: center;
  background: linear-gradient(100deg, #32182b, #1e1930 47%, #111f33);
  border: 1px solid #4a2a3c;
  border-radius: 5px;
  padding: 9px 15px;
  gap: 12px;
  margin-bottom: 16px;
  position: relative;
  overflow: hidden;
}
.top-banner:after {
  content: "";
  position: absolute;
  left: 57%;
  top: -30px;
  width: 100px;
  height: 160px;
  background: #ee35491a;
  transform: rotate(35deg);
  pointer-events: none;
}
.banner-icon {
  display: grid;
  place-items: center;
  background: #d5294155;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  color: #ff6a7b;
}
.top-banner > div {
  display: flex;
  gap: 20px;
  align-items: center;
}
.top-banner b {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.5px;
}
.top-banner > div > span {
  color: #a7a2b5;
  font-size: 10px;
}
.top-banner > button {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--red);
  padding: 8px 10px;
  border-radius: 4px;
  font-size: 9px;
  font-weight: 800;
  z-index: 1;
}
.top-banner button svg {
  width: 13px;
  height: 13px;
}
.broadcast-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 350px;
  grid-template-areas: "screen schedule" "sponsor schedule";
  gap: 17px 18px;
  align-items: start;
}
.screen-area {
  grid-area: screen;
  min-width: 0;
  border: 1px solid #26334a;
  border-radius: 6px;
  overflow: hidden;
  background: #080e18;
}
.player {
  aspect-ratio: 16/9;
  position: relative;
  isolation: isolate;
  background: #091524;
}
.poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -3;
}
.player-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    #040f2570,
    transparent 28%,
    #03091620 50%,
    #030a18f2
  );
  z-index: -2;
}
.player-top {
  position: absolute;
  top: 17px;
  left: 18px;
  right: 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.player-label {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.7px;
  text-shadow: 0 1px 8px #000;
}
.player-label i,
.broadcast-status i,
.filters i {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--red);
  margin-right: 6px;
  box-shadow: 0 0 10px #ef34484d;
}
.quality {
  font-size: 10px;
  background: #09132280;
  border: 1px solid #ffffff30;
  padding: 4px 6px;
  border-radius: 3px;
  font-weight: 800;
}
.quality b {
  font-weight: 400;
  font-size: 8px;
  padding-left: 4px;
  color: #acbacc;
}
.player-center {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding-bottom: 20px;
}
.large-play {
  width: 65px;
  height: 65px;
  border-radius: 50%;
  border: 1px solid #ffffff9c;
  background: #ffffff1f;
  backdrop-filter: blur(6px);
  display: grid;
  place-items: center;
  box-shadow: 0 0 0 10px #ffffff08;
  transition: 0.2s;
}
.large-play svg {
  width: 28px;
  height: 28px;
  fill: white;
  stroke: white;
  margin-left: -3px;
}
.large-play:hover {
  background: var(--red);
  border-color: var(--red);
  transform: scale(1.07);
}
.player-caption {
  position: absolute;
  bottom: 26px;
  left: 25px;
  right: 20px;
  pointer-events: none;
}
.player-caption > span {
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 1.6px;
  color: #c2cbdd;
}
.player-caption h1 {
  font:
    800 34px/0.98 "Barlow Condensed",
    Impact,
    sans-serif;
  letter-spacing: 0.1px;
  margin: 8px 0 9px;
  max-width: 80%;
  text-shadow: 0 3px 15px #0007;
}
.player-caption p {
  margin: 0;
  color: #93a4bf;
  font-size: 9px;
}
.poster-watermark {
  position: absolute;
  right: 20px;
  bottom: 23px;
  font-size: 17px;
  font-weight: 900;
  font-style: italic;
  color: #fff9;
  letter-spacing: -1px;
}
.poster-watermark span {
  color: var(--red);
}
.player-toolbar {
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 13px;
  background: #050b15;
  border-top: 1px solid #1b263b;
}
.broadcast-status {
  display: flex;
  align-items: center;
  font-size: 10px;
  color: #9faabe;
  min-width: 0;
}
.broadcast-status > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.broadcast-status i {
  background: #5f6f86;
  box-shadow: none;
  flex-shrink: 0;
}
.broadcast-status.selected i {
  background: var(--red);
}
.player-toolbar > div {
  display: flex;
  gap: 4px;
  flex-shrink: 0;
}
.player-toolbar button {
  display: grid;
  place-items: center;
  width: 29px;
  height: 28px;
  font-size: 21px;
  color: #adbbcf;
  border-radius: 3px;
}
.player-toolbar button:hover {
  background: #24314a;
}
.player-toolbar svg {
  width: 14px;
  height: 14px;
}
.source-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 11px;
  border-top: 1px solid #17243a;
  background: #0d192b;
  gap: 6px;
}
.source-bar > div {
  display: flex;
  gap: 6px;
  align-items: center;
}
.source-label {
  font-size: 8px;
  letter-spacing: 1px;
  color: #6d7d98;
  margin-right: 5px;
}
.source {
  font-size: 9px;
  color: #899bb7;
  border: 1px solid #243650;
  border-radius: 3px;
  padding: 6px 8px;
}
.source.active {
  background: #482336;
  border-color: #a84155;
  color: #ffacb7;
}
#save-match {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 9px;
  color: #94a5bd;
  padding: 5px;
}
#save-match svg {
  width: 13px;
  height: 13px;
}
#save-match.saved {
  color: var(--gold);
}
#save-match.saved svg {
  fill: #ffdc6533;
}
.sponsor-area {
  grid-area: sponsor;
  min-width: 0;
}
.sponsor-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.sponsor-heading h2 {
  margin: 0;
  font-size: 9px;
  letter-spacing: 1px;
  font-weight: 700;
  color: #a5b1c4;
}
.sponsor-heading > span {
  font-size: 7px;
  letter-spacing: 1px;
  color: #60728c;
}
.sponsor-stack {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sponsor-row {
  display: grid;
  grid-template-columns: 130px 1fr 84px;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 53px;
  background: linear-gradient(100deg, #241019, #21121d 65%, #2e1b21);
  border: 1px solid #3f202b;
  border-radius: 6px;
  padding: 6px 9px;
  text-align: left;
}
.sponsor-row:hover {
  border-color: #9f7441;
  background: #2f1824;
}
.ad-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 37px;
  width: 121px;
  background: #090a0d;
  border: 1px solid #34212b;
  border-radius: 4px;
  font-size: 22px;
  line-height: 1;
  font-weight: 900;
  font-style: italic;
  letter-spacing: -1px;
}
.arena {
  color: #fff;
}
.arena span {
  color: #ff8a40;
  font-size: 30px;
  line-height: 0.5;
  margin-left: 2px;
}
.spormax {
  font-size: 22px;
}
.spormax span {
  color: #38ba37;
}
.forma {
  color: #7cddf7;
  font-style: normal;
  flex-direction: column;
  font-size: 21px;
}
.forma small {
  font-size: 7px;
  letter-spacing: 4px;
  color: #dde3ed;
  margin-top: 2px;
}
.tribun {
  color: #ffd04b;
  flex-direction: column;
  font-family: Georgia, serif;
  font-size: 19px;
  font-style: normal;
  letter-spacing: 1px;
}
.tribun small {
  font: 6px Inter;
  letter-spacing: 1px;
  margin-top: 4px;
}
.matchday {
  font-size: 15px;
  color: white;
  letter-spacing: -0.6px;
}
.matchday span {
  color: #ff405e;
}
.ad-copy {
  text-align: center;
  min-width: 0;
}
.ad-copy strong {
  color: var(--gold);
  font-size: 13px;
  display: block;
  font-weight: 900;
  line-height: 1.2;
}
.ad-copy small {
  display: block;
  font-size: 9px;
  color: #c3b5bf;
  margin-top: 3px;
  line-height: 1.25;
}
.ad-cta {
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  background: linear-gradient(#ffe982, #edbd31);
  color: #261b00;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.4px;
  border-radius: 5px;
  box-shadow: 0 3px 13px #eac64221;
}
.ad-cta b {
  font-size: 12px;
}
.ad-footnote {
  margin: 6px 0 0;
  font-size: 8px;
  color: #64738c;
}
.schedule {
  grid-area: schedule;
  background: #0a172a;
  border: 1px solid var(--border);
  border-radius: 6px;
  overflow: hidden;
  min-width: 0;
  scroll-margin-top: 15px;
}
.panel-tabs {
  display: flex;
  border-bottom: 1px solid #314057;
  background: #101e32;
}
.panel-tabs > button {
  width: 50%;
  min-height: 49px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 700;
  font-size: 11px;
  color: #70829f;
  position: relative;
}
.panel-tabs > button svg {
  width: 16px;
  height: 16px;
}
.panel-tabs > button.active {
  background: linear-gradient(#29364a, #17263a);
  color: #f3f5f9;
}
.panel-tabs > button.active:after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--red);
}
.panel-tabs > button.active svg {
  color: #ff5b70;
}
.panel-tabs > button > span {
  background: #ed334727;
  border: 1px solid #e9475844;
  border-radius: 3px;
  font-size: 8px;
  padding: 2px 4px;
  color: #ff8797;
}
.schedule-tools {
  padding: 12px 12px 10px;
}
.search {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid #26364f;
  border-radius: 4px;
  padding: 8px 9px;
  background: #081223;
}
.search svg {
  width: 13px;
  height: 13px;
  color: #677b99;
}
.search input {
  width: 100%;
  min-width: 0;
  border: 0;
  background: none;
  outline: none;
  color: white;
  font-size: 10px;
}
.search input::placeholder {
  color: #677992;
}
.filters {
  display: flex;
  gap: 6px;
  margin-top: 10px;
}
.filters button {
  border: 1px solid #24334a;
  border-radius: 3px;
  flex: 1;
  padding: 6px 2px;
  font-size: 9px;
  color: #8b9ab0;
}
.filters button.active {
  background: #29354a;
  color: white;
  border-color: #3f4d63;
}
.filters i {
  width: 4px;
  height: 4px;
  margin-right: 3px;
  vertical-align: middle;
  box-shadow: none;
}
.list-heading {
  padding: 9px 13px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #0f1e33;
  border-top: 1px solid #1c2c43;
  border-bottom: 1px solid #22334b;
  font-size: 7px;
  letter-spacing: 0.6px;
  color: #95a6c1;
}
.list-heading > span:last-child {
  font-size: 6px;
  color: #6d829f;
}
#listing {
  max-height: 615px;
  min-height: 350px;
  overflow: auto;
  scrollbar-width: thin;
  scrollbar-color: #33425b #0a172a;
}
.match-row {
  width: 100%;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) 22px;
  gap: 10px;
  text-align: left;
  align-items: center;
  padding: 12px 12px;
  border-bottom: 1px solid #1c2a40;
  position: relative;
  min-height: 70px;
}
.match-row:hover {
  background: #16253b;
}
.match-row.featured {
  background: linear-gradient(90deg, #51263550, #311e3040);
  border-left: 2px solid var(--red);
  padding-left: 10px;
}
.match-row.selected {
  background: #1c304b;
  box-shadow: inset 3px 0 var(--red);
}
.team-crest {
  width: 22px;
  height: 25px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  border-radius: 5px 5px 10px 10px;
  border: 1px solid #ffffff4d;
  color: #fff;
  font-size: 7px;
  font-weight: 800;
  font-style: normal;
  box-shadow: 0 3px 6px #0004;
}
.gs {
  background: linear-gradient(90deg, #bf2435 50%, #f0b137 50%);
}
.fb {
  background: repeating-linear-gradient(90deg, #efca46 0 5px, #233e70 5px 10px);
  text-shadow: 0 1px 2px black;
}
.bar {
  background: repeating-linear-gradient(90deg, #ad244c 0 5px, #28518e 5px 10px);
}
.red {
  background: #b32c44;
}
.blue {
  background: #2860a6;
}
.white {
  background: #efefea;
  color: #514a34;
}
.black {
  background: linear-gradient(90deg, white 50%, #28313f 50%);
  color: #c6933c;
}
.green {
  background: #337853;
}
.purple {
  background: #673d91;
}
.orange {
  background: #da8b37;
}
.maroon {
  background: linear-gradient(90deg, #87304a 50%, #337398 50%);
}
.match-content {
  min-width: 0;
}
.match-category {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #637b9b;
  font-size: 7px;
  margin-bottom: 4px;
}
.match-category .featured-tag {
  margin-left: auto;
  color: #f092a0;
  font-size: 6px;
  letter-spacing: 0.3px;
}
.match-league {
  display: block;
  font-size: 8px;
  color: #879bb8;
  line-height: 1.5;
  margin-bottom: 3px;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.match-league strong {
  color: #c9d3e3;
  font-weight: 600;
}
.match-teams {
  display: grid;
  grid-template-columns: 1fr 14px 1fr;
  align-items: start;
  gap: 2px;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.4;
  color: #d7e0ed;
}
.match-teams > span:last-child {
  text-align: right;
}
.match-teams em {
  font-size: 7px;
  font-weight: 400;
  color: #536986;
  text-align: center;
  font-style: normal;
  padding-top: 2px;
}
.live-text {
  color: #ff5269;
  font-size: 7px;
  font-weight: 700;
  margin-left: auto;
}
.list-footer {
  padding: 11px 12px;
  font-size: 8px;
  color: #667c9c;
  background: #0d1b2f;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.list-footer button {
  color: #ef8c9d;
  font-size: 8px;
}
.channel-row {
  width: 100%;
  display: flex;
  text-align: left;
  align-items: center;
  gap: 11px;
  min-height: 68px;
  padding: 12px;
  border-bottom: 1px solid #1c2a40;
}
.channel-row:hover {
  background: #192a42;
}
.channel-logo {
  display: grid;
  place-items: center;
  min-width: 50px;
  height: 32px;
  background: linear-gradient(125deg, #243c61, #17263d);
  border: 1px solid #36527c;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 900;
  font-style: italic;
}
.channel-row > span:nth-child(2) {
  display: flex;
  flex-direction: column;
  font-size: 11px;
  gap: 5px;
}
.channel-row small {
  font-size: 8px;
  color: #7f93b2;
}
.channel-row > svg {
  margin-left: auto;
  width: 13px;
  color: #d65066;
}
.empty {
  padding: 30px 20px;
  line-height: 1.8;
  color: #93a6c1;
  text-align: center;
  font-size: 11px;
}
.leagues {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  border-top: 1px solid #1b2a40;
  border-bottom: 1px solid #1b2a40;
  padding: 19px 10px;
  margin-top: 25px;
  color: #7285a1;
}
.leagues > span {
  font-size: 8px;
  letter-spacing: 1.5px;
  line-height: 1.8;
}
.leagues > span b {
  color: #bdc9dc;
  font-size: 9px;
}
.leagues > div {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.3px;
}
.league-symbol {
  font-size: 26px;
  color: #a1afc5;
}
footer {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 22px 0 30px;
  color: #5e718d;
}
footer .footer-logo {
  font-size: 16px;
  font-weight: 900;
  color: #b4c0d3;
  letter-spacing: -0.5px;
  white-space: nowrap;
}
.footer-logo span {
  font-weight: 400;
}
footer p {
  font-size: 8px;
  line-height: 1.7;
  margin: 0;
}
footer > span {
  margin-left: auto;
  font-size: 7px;
  letter-spacing: 0.5px;
  white-space: nowrap;
}
footer > span b {
  color: #77aa91;
  margin-left: 5px;
}
dialog {
  background: #101c2f;
  border: 1px solid #3d4e67;
  border-radius: 10px;
  width: calc(100% - 32px);
  max-width: 400px;
  padding: 30px;
  color: #ecf1f9;
  text-align: center;
}
dialog::backdrop {
  background: #020713cc;
  backdrop-filter: blur(5px);
}
#dialog-close {
  position: absolute;
  right: 11px;
  top: 7px;
  font-size: 25px;
  color: #859ab8;
}
.modal-mark {
  color: var(--red);
  font-size: 24px;
}
dialog h2 {
  font-size: 19px;
  line-height: 1.4;
}
dialog p {
  font-size: 12px;
  line-height: 1.8;
  color: #97a8c2;
}
#dialog-ok {
  background: var(--red);
  padding: 10px 25px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 700;
  margin-top: 8px;
}
#toast {
  display: none;
  position: fixed;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  padding: 12px 18px;
  background: #25374f;
  border: 1px solid #496582;
  color: white;
  border-radius: 5px;
  font-size: 11px;
  z-index: 20;
  box-shadow: 0 6px 30px #0008;
  width: max-content;
  max-width: 90vw;
}
#toast.visible {
  display: block;
}
.theater .broadcast-layout {
  grid-template-columns: 1fr 350px;
  grid-template-areas: "screen screen" "sponsor schedule";
}
.theater .player {
  max-height: 72vh;
  aspect-ratio: auto;
  height: 600px;
}
.player:fullscreen {
  width: 100vw;
  height: 100vh;
  aspect-ratio: auto;
}
.player:fullscreen .player-caption h1 {
  font-size: 55px;
}
.player:fullscreen .poster {
  object-fit: contain;
  background: black;
}
@media (min-width: 1450px) {
  .site-wrap {
    width: min(1240px, calc(100% - 64px));
  }
  .broadcast-layout {
    grid-template-columns: minmax(0, 1fr) 370px;
  }
  .player-caption h1 {
    font-size: 39px;
  }
  #listing {
    max-height: 669px;
  }
  .sponsor-row {
    min-height: 55px;
  }
}
@media (max-width: 1000px) {
  .site-wrap {
    width: calc(100% - 32px);
  }
  .broadcast-layout {
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 15px;
  }
  .support {
    display: none;
  }
  header {
    gap: 15px;
  }
  .top-banner > div {
    gap: 12px;
  }
  .top-banner > div > span {
    display: none;
  }
  .player-caption {
    left: 18px;
    bottom: 20px;
  }
  .player-caption h1 {
    font-size: 29px;
  }
  .player-caption p {
    font-size: 8px;
    max-width: 78%;
    line-height: 1.6;
  }
  .poster-watermark {
    font-size: 14px;
  }
  .sponsor-row {
    grid-template-columns: 105px 1fr 66px;
    gap: 6px;
    padding: 6px;
  }
  .ad-logo {
    width: 102px;
    font-size: 19px;
  }
  .ad-copy strong {
    font-size: 10px;
  }
  .ad-copy small {
    font-size: 8px;
  }
  .ad-cta {
    font-size: 8px;
  }
  .ad-cta b {
    display: none;
  }
  .tribun {
    font-size: 17px;
  }
  .matchday {
    font-size: 13px;
  }
  .player-caption > span {
    font-size: 6px;
  }
  .large-play {
    width: 52px;
    height: 52px;
  }
  .player-center {
    padding-bottom: 45px;
  }
  #listing {
    max-height: 560px;
  }
}
@media (max-width: 760px) {
  .site-wrap {
    width: calc(100% - 24px);
  }
  .announcement {
    height: 28px;
    font-size: 8px;
    overflow: hidden;
  }
  .announcement > span:first-child {
    white-space: nowrap;
    gap: 6px;
    font-size: 7px;
  }
  .announcement b {
    font-size: 6px;
    padding: 3px 4px;
  }
  .preview-badge {
    display: none;
  }
  header {
    height: 66px;
    gap: 8px;
  }
  .logo {
    gap: 6px;
  }
  .logo-mark {
    width: 32px;
    height: 35px;
    font-size: 23px;
    padding-right: 5px;
  }
  .logo-mark span {
    right: 4px;
    top: 14px;
    font-size: 10px;
  }
  .logo strong {
    font-size: 21px;
  }
  .logo em {
    font-size: 9px;
    margin-left: 3px;
  }
  nav {
    gap: 1px;
  }
  nav button {
    min-width: 49px;
    height: 50px;
    gap: 5px;
    font-size: 6px;
    letter-spacing: 0;
  }
  nav button svg {
    width: 18px;
    height: 18px;
  }
  nav button[data-nav="home"] {
    display: none;
  }
  .top-banner {
    min-height: 39px;
    margin-bottom: 10px;
    padding: 6px 9px;
    gap: 8px;
  }
  .banner-icon {
    width: 24px;
    height: 24px;
  }
  .banner-icon svg {
    width: 16px;
    height: 16px;
  }
  .top-banner b {
    font-size: 9px;
    letter-spacing: 0.1px;
  }
  .top-banner > button {
    padding: 7px;
    font-size: 7px;
    gap: 4px;
  }
  .top-banner button svg {
    width: 11px;
    height: 11px;
  }
  .broadcast-layout {
    display: flex;
    flex-direction: column;
    gap: 13px;
  }
  .screen-area,
  .schedule,
  .sponsor-area {
    width: 100%;
  }
  .screen-area {
    order: 0;
  }
  .sponsor-area {
    order: 1;
  }
  .schedule {
    order: 2;
  }
  .player {
    aspect-ratio: 16/9;
  }
  .player-top {
    top: 11px;
    left: 12px;
    right: 12px;
  }
  .player-label {
    font-size: 7px;
  }
  .quality {
    font-size: 8px;
    padding: 3px 5px;
  }
  .quality b {
    font-size: 6px;
  }
  .player-center {
    padding-bottom: 15px;
  }
  .large-play {
    width: 45px;
    height: 45px;
    box-shadow: 0 0 0 7px #ffffff08;
  }
  .large-play svg {
    width: 23px;
    height: 23px;
  }
  .player-caption {
    bottom: 13px;
    left: 14px;
    right: 14px;
  }
  .player-caption h1 {
    font-size: 27px;
    line-height: 1;
    max-width: 85%;
    margin: 6px 0;
  }
  .player-caption > span {
    font-size: 6px;
    letter-spacing: 0.8px;
  }
  .player-caption p {
    display: none;
  }
  .poster-watermark {
    right: 13px;
    bottom: 13px;
    font-size: 13px;
  }
  .player-toolbar {
    height: 33px;
    padding: 0 9px;
  }
  .broadcast-status {
    font-size: 8px;
  }
  .player-toolbar button {
    width: 27px;
    height: 24px;
  }
  .source-bar {
    padding: 6px 8px;
  }
  .source-label {
    font-size: 7px;
  }
  .source {
    font-size: 8px;
    padding: 5px 7px;
  }
  #save-match {
    font-size: 8px;
  }
  #save-match svg {
    width: 11px;
    height: 11px;
  }
  .sponsor-heading {
    margin-bottom: 6px;
  }
  .sponsor-heading h2 {
    font-size: 8px;
  }
  .sponsor-heading > span {
    font-size: 6px;
  }
  .sponsor-stack {
    gap: 5px;
  }
  .sponsor-row {
    grid-template-columns: 100px minmax(0, 1fr) 63px;
    gap: 7px;
    min-height: 48px;
    padding: 5px 6px;
    border-radius: 5px;
  }
  .ad-logo {
    width: 98px;
    height: 35px;
    font-size: 19px;
  }
  .arena span {
    font-size: 24px;
  }
  .spormax {
    font-size: 18px;
  }
  .forma {
    font-size: 19px;
  }
  .forma small {
    font-size: 6px;
    letter-spacing: 3px;
  }
  .tribun {
    font-size: 16px;
  }
  .tribun small {
    font-size: 5px;
    letter-spacing: 0.6px;
  }
  .matchday {
    font-size: 12px;
  }
  .ad-copy strong {
    font-size: 10px;
    line-height: 1.25;
  }
  .ad-copy small {
    font-size: 7px;
    line-height: 1.3;
    margin-top: 2px;
  }
  .ad-cta {
    height: 27px;
    font-size: 8px;
    letter-spacing: 0;
  }
  .ad-footnote {
    font-size: 7px;
    margin-top: 5px;
  }
  .panel-tabs > button {
    min-height: 44px;
    font-size: 10px;
  }
  .schedule-tools {
    padding: 11px;
  }
  .search {
    padding: 9px;
  }
  .search input {
    font-size: 11px;
  }
  .filters button {
    padding: 7px 2px;
    font-size: 10px;
  }
  .match-row {
    min-height: 75px;
    padding: 12px 14px;
    gap: 12px;
    grid-template-columns: 25px minmax(0, 1fr) 25px;
  }
  .match-row.featured {
    padding-left: 12px;
  }
  .team-crest {
    width: 25px;
    height: 28px;
    font-size: 8px;
  }
  .match-teams {
    font-size: 11px;
  }
  .match-category {
    font-size: 8px;
  }
  .match-league {
    font-size: 9px;
  }
  #listing {
    max-height: 510px;
    min-height: 250px;
  }
  .list-heading {
    font-size: 8px;
  }
  .list-heading > span:last-child {
    font-size: 7px;
  }
  .leagues {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px 18px;
    padding: 16px 8px;
    margin-top: 20px;
  }
  .leagues > span {
    display: none;
  }
  .leagues > div {
    font-size: 7px;
    gap: 7px;
  }
  .league-symbol {
    font-size: 21px;
  }
  footer {
    flex-wrap: wrap;
    gap: 10px 15px;
    padding: 20px 0;
  }
  footer .footer-logo {
    font-size: 15px;
  }
  footer p {
    order: 3;
    width: 100%;
    font-size: 7px;
  }
  footer > span {
    font-size: 6px;
  }
  .theater .player {
    height: auto;
    aspect-ratio: 16/9;
  }
  .theater .broadcast-layout {
    display: flex;
  }
  .player:fullscreen .player-caption h1 {
    font-size: 35px;
  }
}
@media (max-width: 360px) {
  .site-wrap {
    width: calc(100% - 18px);
  }
  .logo strong {
    font-size: 19px;
  }
  .logo-mark {
    width: 28px;
    height: 31px;
    font-size: 22px;
  }
  nav button {
    min-width: 44px;
  }
  .top-banner b {
    font-size: 8px;
  }
  .banner-icon {
    display: none;
  }
  .sponsor-row {
    grid-template-columns: 86px minmax(0, 1fr) 58px;
    gap: 5px;
  }
  .ad-logo {
    width: 85px;
    font-size: 16px;
  }
  .ad-copy strong {
    font-size: 9px;
  }
  .ad-copy small {
    font-size: 6.5px;
  }
  .matchday {
    font-size: 11px;
  }
  .tribun {
    font-size: 14px;
  }
  .tribun small {
    font-size: 4.5px;
  }
  .player-caption h1 {
    font-size: 24px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  * {
    transition: none !important;
  }
}

/* ===== Tasarım v2 ekleri (app.js davranışı) ===== */
/* Oynatıcı katmanları. Tasarımda .player zaten position:relative +
   isolation:isolate + 16/9; poster z-index -3, gölge -2. <video> ve iframe
   kabı bunların ÜSTÜNE (z-index 2) mutlak konumla oturur ve kutuyu doldurur.
   overflow:hidden: sinema/tam ekranda video kutudan taşmasın. */
.player {
  overflow: hidden;
}
.player .stream,
.player .embed {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background: #000;
  z-index: 2;
}
/* Boş iframe kutusu videonun ÜSTÜNDE siyah katman olarak kalıyordu ("ses var,
   görüntü siyah"): yalnızca içinde iframe varken görünür. */
.player .embed:empty {
  display: none;
}
.player .embed:not(:empty) {
  z-index: 3;
}
.player .embed iframe,
.player .player__embed {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
/* player.js iframe aktifken video'yu gizler (is-hidden). */
.player video.is-hidden {
  display: none;
}
/* Yayın başlayınca (#player.is-playing) poster katmanları kalkar; üst
   etiket (CANLI / kanal adı) videonun üstünde kalır ama tıklamayı yutmaz. */
.player.is-playing .poster,
.player.is-playing .player-shade,
.player.is-playing .player-center,
.player.is-playing .player-caption,
.player.is-playing .poster-watermark {
  display: none;
}
.player.is-playing .player-top {
  z-index: 3;
  pointer-events: none;
}

/* Reklam alanları: oynatıcı üstü slot ve sayfa kenarı skin'ler. */
.ad-slot {
  margin-bottom: 12px;
}
.ad-slot:empty {
  display: none;
}
.skin {
  display: none;
  position: fixed;
  top: 0;
  bottom: 0;
  width: 160px;
  z-index: 1;
}
.skin--left {
  left: 0;
}
.skin--right {
  right: 0;
}
@media (min-width: 1450px) {
  .skin:not([hidden]) {
    display: block;
  }
}
body.theater .skin {
  display: none;
}

/* Duyuru bandındaki sosyal bağlantılar (app.js doldurur). */
.announcement-social a {
  color: inherit;
  opacity: 0.8;
  margin-left: 10px;
  text-decoration: none;
}

/* Kaynak butonları gizliyken favori butonu sağda kalsın: .source-bar
   space-between kullanır, tek çocuk kalınca sola kayardı. */
.source-bar > #save-match {
  margin-left: auto;
}

/* Haberler: .site-wrap genişliği zaten sınırlar; yalnızca ızgara boşluğu
   kadar üst aralık. */
.news {
  margin-top: 18px;
}
.news-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}
.news-card {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px;
}
.news-card .tag {
  color: var(--gold);
  font-size: 11px;
  letter-spacing: 0.08em;
}
.news-card h3 {
  margin: 6px 0 4px;
  font-size: 15px;
}
.news-card p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  white-space: pre-line;
}

/* Kanal satırında EPG (şu an / sonraki program) satırı. */
.epg-line {
  display: block;
  font-size: 12px;
  color: var(--muted);
}
.epg-line b {
  color: #fff;
  font-weight: 600;
}

/* Gerçek veriden gelen görseller: takım arması, kanal ve sponsor logosu, site logosu.
   Kutu sabit, görsel içine sığar; %100 boyut + overflow yok iken logolar satırı
   taşırıyordu. */
.channel-logo {
  width: 56px;
  min-width: 56px;
  flex-shrink: 0;
  overflow: hidden;
}
.team-crest {
  overflow: hidden;
}
.team-crest img,
.channel-logo img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: inherit;
}
.sponsor-row img.ad-logo-img {
  height: 28px;
  max-width: 120px;
  object-fit: contain;
}
.logo img {
  height: 34px;
  width: auto;
}
/* Not: [hidden]{display:none!important} tasarım CSS'inde zaten var (dosya başı),
   tekrar tanımlanmadı. */

/* Oynatıcı altı reklam alanı (#adBelowPlayer): kaynak çubuğunun altında.
   .ad-slot:empty{display:none} burada da geçerli; dolana kadar hidden. */
.ad-slot--below {
  margin: 10px 0 0;
}

/* Açılır reklam: oynatıcıyı örten karartma + ortada kutu. z-index 6, oynatıcı
   katmanlarının (video/iframe 2, üst etiket 3) üstünde; kapat düğmesi 7. */
.ad-overlay {
  position: absolute;
  inset: 0;
  z-index: 6;
  display: grid;
  place-items: center;
  background: rgba(0, 0, 0, 0.55);
}
.ad-overlay__body {
  position: relative;
  max-width: min(92%, 720px);
  max-height: 88%;
  overflow: auto;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px;
}
.ad-overlay__body img {
  max-width: 100%;
  height: auto;
  display: block;
}
.ad-overlay__close {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 7;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: #000c;
  color: #fff;
  font-size: 18px;
  cursor: pointer;
}
