/* ---------- base ---------- */
html, body {
  background: #333;
  color: #fff;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
    Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
}
html { height: 100%; }
body { min-height: 100%; margin: 0; }
html, body { box-sizing: border-box; }
*, *:before, *:after { box-sizing: inherit; }

a { color: #000; text-decoration: none; border-bottom: 1px dotted #313131; }
a:hover { border-bottom: 1px solid #313131; }

.box {
  margin: 20px 50px;
  padding: 20px;
  background: #eee;
  color: #333;
  border-radius: 15px;
}

/* ---------- navigation ---------- */
.nav {
  background: #0000004d;
  -webkit-backdrop-filter: blur(15px);
  backdrop-filter: blur(15px);
}
.nav__width {
  padding: 20px 50px;
  display: flex;
  max-width: 1500px;
  margin: 0 auto;
}
.nav .logo { margin-right: 20px; }
.nav .logo img { height: 15px; width: auto; display: block; }
.nav .links {
  display: flex;
  list-style-type: none;
  padding: 0;
  margin: 0;
  border-radius: 10px;
  align-items: center;
}
.nav .links a {
  color: #eee;
  text-decoration: none;
  border: none;
  margin-right: 20px;
  font-size: 14px;
}
.nav .links a:hover { text-decoration: underline; }
.nav .links a.active { font-weight: 700; }

/* ---------- main background ---------- */
.mainBackground {
  min-height: 100vh;
  background-size: cover;
  background-position: left top;
}

/* ---------- home page ---------- */
.pageHome {
  padding: 20px 50px;
  max-width: 1500px;
  margin: 0 auto;
}
.split {
  --channelsLeftMargin: 20px;
  --channelsTopMargin: 0;
  --channelsWidth: 200px;
  display: flex;
}
.split__video { flex: 1; }
.split__video_ratio {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
}
.split__video_ratio video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000;
  border-radius: 15px;
}
.split__channels {
  width: var(--channelsWidth);
  margin-left: var(--channelsLeftMargin);
}
@media all and (max-width: 800px) {
  .split {
    flex-direction: column;
    --channelsLeftMargin: 0;
    --channelsTopMargin: 20px;
    --channelsWidth: 100%;
  }
}

/* ---------- currently playing / select ---------- */
.currentlyPlaying {
  background: rgba(0, 0, 0, 0.55);
  -webkit-backdrop-filter: blur(15px);
  backdrop-filter: blur(15px);
  padding: 15px;
  margin-top: 10px;
  border-radius: 15px;
  font-size: 14px;
}
.currentlyPlaying b { font-weight: 700; }

.selectChannelBox {
  background: rgba(0, 0, 0, 0.55);
  -webkit-backdrop-filter: blur(15px);
  backdrop-filter: blur(15px);
  height: 400px;
  display: flex;
  text-align: center;
  justify-content: center;
  border-radius: 15px;
  color: #b4b4b4;
  align-items: center;
  font-size: 18px;
}
@media all and (max-width: 800px) {
  .selectChannelBox { height: 150px; }
}
.selectChannelBox svg { width: 10px; height: 10px; }
.selectChannelBox .lineHeader { font-weight: 700; }
.selectChannelBox .lineSelectChannel { margin: 5px 0; font-size: 20px; }
.selectChannelBox .lineRandom {
  --initialScale: 1;
  --endScale: 1.2;
  cursor: pointer;
  animation: pulseScale 3s ease infinite;
}

/* ---------- playing stats / Top10 ---------- */
.playingStats {
  color: #eee;
  background: rgba(0, 0, 0, 0.55);
  -webkit-backdrop-filter: blur(15px);
  backdrop-filter: blur(15px);
  padding: 15px;
  margin-top: 10px;
  border-radius: 15px;
}
.playingStats__title {
  font-size: 18px;
  border-bottom: 1px solid #727272;
  padding-bottom: 10px;
  margin-bottom: 10px;
}
.playingStats ol {
  list-style-position: inside;
  padding: 0;
  margin: 0;
  font-size: 14px;
}
.playingStats li {
  padding: 6px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.playingStats li:last-child { border-bottom: none; }

/* ---------- channel list ---------- */
.channelList { margin-top: var(--channelsTopMargin); }
.channelList__channel {
  cursor: pointer;
  height: 64px;
  display: flex;
  margin-bottom: 5px;
  text-decoration: none;
  border: none;
  border-bottom: none !important;
}
.channelList__channel:hover {
  transform: scale(1.1);
  border: none;
  border-bottom: none !important;
  text-decoration: none;
}
.channelList__channelIcon {
  --initialWidth: 20px;
  --endWidth: 25px;
  width: 64px;
  background-color: var(--var-bgColor);
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  border-bottom-left-radius: 10px;
  border-top-left-radius: 10px;
}
.channelList__channelIcon svg {
  opacity: .8;
  width: var(--initialWidth);
  height: auto;
  fill: #fff;
}
.channelList__channelIconActive svg {
  opacity: 1;
  animation: pulseWidth 1s linear infinite;
}
.channelList__channelLogo {
  flex: 1;
  background: #333;
  border-bottom-right-radius: 10px;
  border-top-right-radius: 10px;
  display: flex;
  align-items: center;
}
.channelList__channelLogo img {
  margin-left: 10px;
  height: 30px;
  width: auto;
}

@keyframes pulseWidth {
  0%   { width: var(--initialWidth); }
  50%  { width: var(--endWidth); }
  100% { width: var(--initialWidth); }
}
@keyframes pulseScale {
  0%   { transform: scale(var(--initialScale)); }
  50%  { transform: scale(var(--endScale)); }
  100% { transform: scale(var(--initialScale)); }
}

/* ---------- about / channel descriptions ---------- */
.channel { margin-bottom: 15px; }
.channel:last-child { margin-bottom: 0; }
.channel__title { font-weight: 700; }
.channel p { margin: 0; }

/* ---------- artists & playlog ---------- */
.artistsList {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 8px 24px;
  margin-top: 15px;
  font-size: 14px;
}
.artistsList a {
  color: #333;
  border: none;
  padding: 4px 0;
  text-decoration: none;
}
.artistsList a:hover { color: #000; text-decoration: underline; }

.playlogControls {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 15px;
}
.playlogControls select,
.playlogControls input[type="date"] {
  padding: 6px 10px;
  border-radius: 6px;
  border: 1px solid #ccc;
  background: #fff;
  color: #000;
  font: inherit;
}
.playlogList { font-size: 14px; }
.playlogList .row {
  display: flex;
  padding: 6px 0;
  border-bottom: 1px solid rgba(0, 0, 0, .07);
}
.playlogList .row:last-child { border-bottom: none; }
.playlogList .time { width: 80px; color: #666; flex-shrink: 0; }
.playlogList .title { flex: 1; font-weight: 500; }
.playlogList .artist { width: 240px; color: #666; text-align: right; }
@media all and (max-width: 700px) {
  .playlogList .artist { display: none; }
}

/* ---------- footer ---------- */
.siteFooter {
  text-align: center;
  font-size: 12px;
  color: #888;
  padding: 30px 50px;
}
