* { margin: 0; padding: 0; box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; overflow-x: hidden; max-width: 100%; }
body { font-family: Arial, Helvetica, sans-serif; background-color: #273144; color: #1c1e21; line-height: 1.6; font-size: 16px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; padding: 0; margin: 0; overflow-x: hidden; max-width: 100vw; }

.header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: #ffffff; padding: 12px 20px; max-width: 1300px; text-align: center; position: fixed; width: 100%; left: 50%; transform: translateX(-50%); top: 0; z-index: 1000; border-bottom: 2px solid #4a6fa5; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); }
.header-inner { display: block; text-align: center; max-width: 1300px; margin: 0 auto; }
.header a { color: #f5f5f5; text-decoration: none; display: inline-block; margin: 0 20px; padding: 10px 15px; transition: all 0.3s ease; font-size: 20px; font-weight: 700; background-color: transparent; }
.header a:hover,
.header a:focus,
.header a:active { color: #ffffff; text-decoration: none; transform: translateY(-2px); background-color: rgba(255, 255, 255, 0.1); border-radius: 5px; }
.header h1 { font-size: 28px; font-weight: 900; margin: 0; padding: 0; display: inline-block; color: #ffffff; }

.footer { background-color: #4267B2; color: #ffffff; text-align: center; padding: 20px 10px; width: 100%; max-width: 1300px; margin: 20px auto 0; border-top: 2px solid #ffffff; }
.footer h5, .footer h6, .footer p { margin: 5px 0; font-size: 14px; }

.container { width: 100%; max-width: 1300px; margin: 90px auto 0; padding: 25px 30px; background-color: #bed1ea; border-radius: 0; box-shadow: none; }

.search-bar { text-align: center; margin: 0 auto 25px; padding: 0; max-width: 700px; }
.search-bar input[type="text"] { width: 100%; max-width: 700px; padding: 16px 25px; font-size: 17px; border: 3px solid transparent; border-radius: 30px; background: linear-gradient(#ffffff, #ffffff) padding-box, linear-gradient(to right, #667eea 0%, #764ba2 100%) border-box; color: #333; outline: none; text-align: center; transition: all .3s ease; box-shadow: 0 2px 8px rgba(0, 0, 0, .1); }
.search-bar input[type="text"]:focus { border-color: #667eea; box-shadow: 0 0 12px rgba(102, 126, 234, 0.4); background-color: #ffffff; }
.search-bar input[type="text"]::placeholder { color: red; font-size: 16px; }

.event-date { font-size: 22px; font-weight: bold; color: #ffffff; margin: 30px 0 20px 0; padding: 15px; background: linear-gradient(to right, #667eea 0%, #764ba2 100%); border-radius: 8px; text-align: center; box-shadow: 0 3px 10px rgba(102, 126, 234, 0.3); }

.event { background: #f9f9f9; border: 1px solid #ddd; border-left: 5px solid #667eea; border-radius: 6px; margin: 12px 0; padding: 15px; cursor: pointer; position: relative; transition: all 0.3s ease; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08); -webkit-tap-highlight-color: transparent; }
.event:hover,
.event:focus,
.event:active { background: #f0f0f0; transform: translateX(5px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); border-left-color: #4267B2; }
/* Touch devices specific */
@media (hover: none) and (pointer: coarse) {
  .event:active { background: #f0f0f0; transform: translateX(5px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); border-left-color: #4267B2; }
}

.event-content { display: block; text-align: left; }
.event-time { font-size: 16px; font-weight: bold; color: #667eea; margin-right: 15px; display: inline-block; vertical-align: middle; min-width: 60px; }
.event-description { font-size: 16px; font-weight: 600; color: #333; line-height: 1.6; display: inline-block; vertical-align: middle; margin-bottom: 0; margin-left: -8px; }

.stream-button, .event a { display: inline-block; padding: 10px 20px; background: #0066cc; color: #ffffff; text-decoration: none; border-radius: 6px; font-size: 16px; font-weight: 600; text-align: center; transition: all 0.3s ease; border: none; cursor: pointer; border: 1px solid #184dd9; -webkit-tap-highlight-color: transparent; }
.stream-button:hover,
.stream-button:focus,
.stream-button:active,
.event a:hover,
.event a:focus,
.event a:active { background: #8300cc; transform: translateY(-2px); }
/* Touch devices specific */
@media (hover: none) and (pointer: coarse) {
  .stream-button:active,
  .event a:active { background: #8300cc; transform: translateY(-2px); }
}

.category-section { margin-bottom: 35px; }
.category-section h2 { font-size: 22px; color: #4267B2; border-bottom: 2px solid #ddd; padding: 12px 15px; margin-bottom: 20px; border-radius: 6px; background-color: #f0f2f5; font-weight: bold; }

.all-category-bar { background: #555; padding: 15px 20px; margin: 20px 0; text-align: center; border-radius: 0; }
.all-category-bar h2, .all-category-bar a { color: #00ffff; font-size: 20px; font-weight: bold; text-decoration: none; margin: 0 15px; display: inline-block; }
.all-category-bar a:hover,
.all-category-bar a:focus,
.all-category-bar a:active { color: #ffffff; }

.schedule-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: #ffffff; padding: 20px; text-align: center; font-size: 24px; font-weight: bold; margin: 30px 0 20px 0; border-radius: 0; }

.category-title { background: #667eea; color: #ffffff; padding: 15px 20px; font-size: 20px; font-weight: bold; margin: 20px 0 0 0; border-radius: 0; text-align: left; }

.channel-list { margin-top: 15px; padding: 20px; background: transparent; border-radius: 0; border: none; text-align: left; }

.channel-item { display: inline-block; margin: 8px 8px 8px 0; }
.channel-item a { display: inline-block; padding: 10px 20px; background: #0066cc; color: #ffffff; text-decoration: none; border-radius: 6px; font-size: 16px; font-weight: 600; transition: all 0.3s ease; border: 1px solid #184dd9; -webkit-tap-highlight-color: transparent; }
.channel-item a:hover,
.channel-item a:focus { background: #8300cc; transform: translateY(-2px); }
.channel-item a:active { background: #8300cc; transform: translateY(0); }
/* Touch devices specific */
@media (hover: none) and (pointer: coarse) {
  .channel-item a:active { background: #8300cc; transform: scale(0.98); }
}
.channel-item a.active { background: #e91e63; border-color: #e91e63; }

.heading { text-decoration: none; color: #fff; display: block; padding: 24px 40px; text-align: center; font-weight: 700; font-size: 28px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 16px; box-shadow: 0 8px 24px rgba(102, 126, 234, 0.3); transition: all 0.3s ease; border: 2px solid rgba(255, 255, 255, 0.2); -webkit-tap-highlight-color: transparent; }
.heading:hover,
.heading:focus,
.heading:active { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(102, 126, 234, 0.5); background: linear-gradient(135deg, #764ba2 0%, #667eea 100%); }
/* Touch devices specific */
@media (hover: none) and (pointer: coarse) {
  .heading:active { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(102, 126, 234, 0.5); background: linear-gradient(135deg, #764ba2 0%, #667eea 100%); }
}

h1 { font-size: 32px; margin-bottom: 15px; color: #1c1e21; }
h2 { font-size: 26px; margin-bottom: 12px; }
h3 { font-size: 20px; margin-bottom: 10px; }

.alphabet { text-align: center; background-color: #555; color: #00ffff; padding: 10px 5px; border-radius: 6px; margin-bottom: 5px; text-decoration: none; display: block; font-weight: bold; font-size: 16px; transition: background-color 0.3s ease; -webkit-tap-highlight-color: transparent; }
.alphabet:hover,
.alphabet:focus,
.alphabet:active { background-color: #333; color: #ffffff; }

.h1category-heading { text-align: center; background: linear-gradient(to right, #667eea 0%, #764ba2 100%); color: #fff; padding: 12px 10px; border-radius: 6px; margin-bottom: 5px; font-size: 20px; font-weight: bold; }

.grid-container { width: 100%; margin: 0 auto; text-align: center; }
.grid-item { display: inline-block; width: 23%; min-width: 180px; margin: 1%; border-radius: 6px; background-color: #ffffff; vertical-align: top; transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08); -webkit-tap-highlight-color: transparent; }
.grid-item a { text-decoration: none; color: #fff; background: #0066cc; border: 1px solid #184dd9; display: block; padding: 15px 10px; text-align: center; font-weight: 600; -webkit-tap-highlight-color: transparent; transition: all 0.3s ease; border-radius: 6px; }
.grid-item:hover a,
.grid-item:focus-within a,
.grid-item:active a,
.grid-item a:hover,
.grid-item a:focus,
.grid-item a:active { background: #8300cc; border-color: #8300cc; transform: translateY(-2px); }
/* Touch devices specific */
@media (hover: none) and (pointer: coarse) {
  .grid-item:active a,
  .grid-item a:active { background: #8300cc; border-color: #8300cc; transform: scale(0.98); }
}
.grid-item strong { font-size: 14px; display: block; margin-top: 5px; }

.banner-container { text-align: center; margin: 20px auto; padding: 10px; width: 100%; max-width: 728px; }
.banner-container iframe { width: 100%; max-width: 728px; height: 90px; border: 0; }

.iframe-container { margin-top: -8px; text-align: center; position: relative; padding: 20px 10px; min-height: 400px; }
.iframe-container iframe { width: 100%; max-width: 1200px; height: 350px; margin-top: 8px; background: #000; border: 3px solid #808080; border-radius: 8px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); }

.button-container { margin-top: -15px; text-align: center; padding: 10px; }
.button-container button { padding: 10px 20px; margin: 8px; background-color: #0066cc; color: #ffffff; border: 1px solid #ffffff; border-radius: 6px; cursor: pointer; font-size: 15px; font-weight: 600; transition: all 0.3s ease; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); -webkit-tap-highlight-color: transparent; }
.button-container button:hover,
.button-container button:focus { background: #8300cc; transform: translateY(-2px); }
.button-container button:active { transform: translateY(0); }
/* Touch devices specific */
@media (hover: none) and (pointer: coarse) {
  .button-container button:active { background-color: #ff0000; border-color: #ff0000; transform: scale(0.98); }
}

.social-section { text-align: center; padding: 25px 20px; margin: -8px 0; background-color: #2c2c2c; border-radius: 0; }
.social-section p { color: #ffffff; font-size: 18px; margin-bottom: 15px; }
.social-section a { display: inline-block; margin: 0 8px; padding: 0; background-color: transparent; color: #ffffff; text-decoration: none; border-radius: 50%; transition: transform 0.3s ease; -webkit-tap-highlight-color: transparent; }
.social-section a:hover,
.social-section a:focus,
.social-section a:active { transform: scale(1.1); }
.social-section img { width: 40px; height: 40px; border-radius: 50%; }

.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }
.mb-10 { margin-bottom: 10px; }
.mb-20 { margin-bottom: 20px; }
.mt-10 { margin-top: 10px; }
.mt-20 { margin-top: 20px; }
.hidden { display: none; }
.visible { display: block; }

@media (max-width: 319px) { 
  body { font-size: 12px; padding: 0; } 
  .header { padding: 8px 5px; position: fixed; width: 100%; max-width: 100%; left: 0; transform: none; } 
  .header h1 { font-size: 14px; margin: 2px 5px; display: block; width: 100%; } 
  .header a { margin: 2px 5px; padding: 4px 8px; font-size: 11px; display: inline-block; } 
  .container { width: 100%; max-width: 100%; margin-top: 80px; padding: 10px 8px; border-radius: 0; overflow-x: hidden; } 
  h1 { font-size: 18px; } 
  .search-bar { margin: 10px auto 15px; padding: 0 5px; max-width: 100%; } 
  .search-bar input[type="text"] { font-size: 12px; padding: 10px 12px; max-width: 100%; width: 96%; border-width: 2px; } 
  .event-date { font-size: 14px; padding: 8px; } 
  .event { padding: 10px 12px; margin: 8px 0; display: block; } 
  .event-time { display: inline-block; font-size: 12px; margin-bottom: 0; margin-right: 8px; font-weight: 600; color: #5b7cff; vertical-align: top; } 
  .event-description { display: inline-block; font-size: 14px; font-weight: 600; color: #1a1a1a; vertical-align: top; max-width: calc(100% - 70px); } 
  .category-section h2 { font-size: 14px; padding: 8px; } 
  .channel-list { padding: 8px 5px; } 
  .channel-item { display: inline-block; width: calc(50% - 12px); margin: 3px; box-sizing: border-box; vertical-align: top; } 
  .channel-item a { padding: 8px 4px; font-size: 10px; margin: 0; width: 100%; display: block; text-align: center; border-radius: 5px; white-space: normal; word-wrap: break-word; overflow-wrap: break-word; min-height: 38px; line-height: 1.2; box-sizing: border-box; } 
  .grid-container { text-align: center; width: 100%; overflow-x: hidden; } 
  .grid-item { display: inline-block; width: calc(50% - 8px); min-width: 0; max-width: calc(50% - 8px); margin: 4px; box-sizing: border-box; vertical-align: top; } 
  .grid-item a { padding: 8px 4px; font-size: 9px; display: block; word-wrap: break-word; } 
  .grid-item strong { font-size: 9px; display: block; word-wrap: break-word; line-height: 1.2; } 
  .iframe-container { margin-top: 2px; padding: 8px 5px; min-height: 250px; } 
  .iframe-container iframe { width: 100%; height: 200px; max-width: 100%; border-width: 2px; } 
  .button-container button { padding: 8px 12px; margin: 4px; font-size: 11px; } 
  .footer { padding: 10px 8px; font-size: 10px; width: 100%; max-width: 100%; margin: 15px 0 0; } 
}

@media (min-width: 320px) and (max-width: 599px) { 
  body { font-size: 14px; padding: 0; } 
  .header { padding: 10px 5px; position: fixed; width: 100%; max-width: 100%; left: 0; transform: none; } 
  .header h1 { font-size: 18px; margin: 3px 5px; display: block; width: 100%; } 
  .header a { margin: 3px 8px; padding: 6px 10px; font-size: 14px; display: inline-block; } 
  .container { width: 100%; max-width: 100%; margin-top: 160px; padding: 15px 10px; border-radius: 0; overflow-x: hidden; } 
  h1 { font-size: 24px; } 
  .search-bar { margin: 15px auto 20px; padding: 0 10px; max-width: 100%; } 
  .search-bar input[type="text"] { font-size: 14px; padding: 12px 15px; max-width: 100%; width: 95%; border-width: 2px; } 
  .event-date { font-size: 18px; padding: 12px; } 
  .event { padding: 12px 15px; margin: 10px 0; display: block; } 
  .event-time { display: inline-block; font-size: 14px; margin-bottom: 0; margin-right: 10px; font-weight: 600; color: #5b7cff; vertical-align: top; min-width: 50px; } 
  .event-description { display: inline-block; font-size: 14px; font-weight: 600; color: #1a1a1a; vertical-align: top; max-width: calc(100% - 65px); line-height: 1.4; } 
  .category-section h2 { font-size: 18px; padding: 10px; } 
  .channel-list { padding: 10px; } 
  .channel-item { display: inline-block; width: calc(50% - 12px); margin: 4px; box-sizing: border-box; vertical-align: top; } 
  .channel-item a { padding: 10px 6px; font-size: 12px; margin: 0; width: 100%; display: block; text-align: center; border-radius: 6px; white-space: normal; word-wrap: break-word; overflow-wrap: break-word; min-height: 42px; line-height: 1.3; box-sizing: border-box; } 
  .grid-container { text-align: center; width: 100%; overflow-x: hidden; } 
  .grid-item { display: inline-block; width: calc(50% - 10px); min-width: 0; max-width: calc(50% - 6px); margin: 3px; box-sizing: border-box; vertical-align: top; } 
  .grid-item a { padding: 10px 5px; font-size: 11px; display: block; word-wrap: break-word; } 
  .grid-item strong { font-size: 11px; display: block; word-wrap: break-word; line-height: 1.3; } 
  .banner-container { margin: 10px auto; padding: 5px; } 
  .banner-container iframe { height: auto; min-height: 50px; } 
  .iframe-container { margin-top: 2px; padding: 10px 5px; min-height: 300px; } 
  .iframe-container iframe { width: 100%; height: 250px; max-width: 100%; border-width: 2px; } 
  .button-container { margin-top: -15px; } 
  .button-container button { padding: 10px 18px; margin: 5px; font-size: 13px; } 
  .social-section { padding: 15px 5px; } 
  .social-section a { display: block; margin: 8px auto; max-width: 200px; } 
  .footer { padding: 15px 10px; font-size: 12px; width: 100%; max-width: 100%; margin: 20px 0 0; } 
}

@media (min-width: 600px) and (max-width: 1024px) { 
  .header h1 { font-size: 20px; } 
  .container { width: 96%; padding: 60px 18px; } 
  .grid-item { width: calc(33.33% - 10px); min-width: 0; margin: 5px; } 
  .grid-item a { padding: 12px 8px; font-size: 14px; } 
  .grid-item strong { font-size: 13px; } 
  .iframe-container iframe { width: 90%; max-width: 1100px; height: 500px; } 
  .button-container { margin-top: -18px; } 
  .event-time, .event-description { font-size: 15px; } 
  .channel-item { margin: 6px; } 
  .channel-item a { padding: 10px 20px; font-size: 14px; } 
}

@media (min-width: 1025px) and (max-width: 1366px) { 
  .grid-item { width: calc(25% - 12px); min-width: 0; margin: 6px; } 
  .grid-item a { padding: 13px 10px; font-size: 15px; } 
  .grid-item strong { font-size: 14px; } 
}

@media (min-width: 1367px) and (max-width: 1919px) { 
  .grid-item { width: calc(20% - 14px); min-width: 0; margin: 7px; } 
  .grid-item a { padding: 14px 12px; font-size: 15px; } 
  .grid-item strong { font-size: 14px; } 
}

@media (min-width: 1920px) { 
  body { font-size: 18px; } 
  .container { max-width: 1300px; padding: 30px; } 
  .header h1 { font-size: 28px; } 
  h1 { font-size: 38px; } 
  .event-date { font-size: 26px; } 
  .event-time { font-size: 17px; } 
  .event-description { font-size: 18px; } 
  .grid-item { width: 18%; min-width: 220px; } 
  .iframe-container iframe { width: 1200px; height: 675px; } 
  .button-container button { padding: 14px 28px; font-size: 17px; } 
  .channel-item a { padding: 12px 22px; font-size: 16px; } 
}

@media print { 
  .header, .footer, .search-bar, .button-container, .banner-container { display: none; } 
  body { background-color: #ffffff; color: #000000; } 
  .container { width: 100%; max-width: 100%; box-shadow: none; margin: 0; padding: 10px; } 
  .event { page-break-inside: avoid; } 
}

a:focus, button:focus, input:focus { outline: 3px solid #667eea; outline-offset: 2px; }
button:focus:not(:focus-visible) { outline: none; }

.skip-link { position: absolute; top: -40px; left: 0; background: #000000; color: #ffffff; padding: 8px; text-decoration: none; z-index: 9999; }
.skip-link:focus { top: 0; }

@media (prefers-contrast: high) { 
  .event { border: 2px solid #000000; } 
  .button-container button { border: 3px solid #ffffff; } 
}

@media (prefers-reduced-motion: reduce) { 
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } 
}

.no-js .hidden { display: block; }
.clearfix::after { content: ""; display: table; clear: both; }
.message-line { text-align: center; font-weight: bold; font-size: 0.8rem; }