/* === 共通設定 === */
*,
*::before,
*::after {
  box-sizing: border-box; /* padding/border を幅に含める */
}

body {
  font-family: "Noto Sans JP", sans-serif;
  background: #f8f9fa;
  margin: 0;
}

/* === 全体ラッパー === */
.wrapper {
  width: 1200px;           /* 左列 + 右列 + border 合計 */
  margin: 0 auto;
  min-height: 100vh;
  border-right: 4px solid #0033cc;
  overflow: hidden;        /* float 内部の高さ確保 */
}

/* === サイドバー === */
.sidebar {
  float: left;
  width: 240px;             /* 固定幅 */
  background: #0033cc;
  color: #fff;
  height: 100vh;
  overflow-y: auto;
  padding: 0 10px;
}

/* --- ロゴ領域 --- */
.logo-area {
  text-align: center;
  padding: 16px 0 10px 0;
}
.logo-area img {
  width: 100%;
  max-width: 220px;
  height: auto;
  background: #fff;
  border-radius: 6px;
  padding: 4px;
  display: block;
  margin: 0 auto;
}

/* --- チャンネル見出し --- */
.sidebar h2 {
  font-size: 1.1rem;
  text-align: center;
  margin: 10px 0;
  padding-bottom: 6px;
}

/* --- チャンネルリスト --- */
.sidebar form { margin: 4px 0; }
.sidebar button {
  display: block;
  width: 100%;
  color: #fff;
  background: none;
  border: none;
  text-align: left;
  padding: 6px 12px;
  border-radius: 4px;
  cursor: pointer;
  transition: .2s;
}
.sidebar button.active {
  background: #ffcc00;
  color: #0033cc;
  font-weight: bold;
}
.sidebar button:hover:not(.active) {
  background: #ffcc00;
  color: #0033cc;
}

/* === コンテンツ領域 === */
.content {
  float: left;
  width: 956px;            /* 1200 - 240 - 4(border) */
  background: #fff;
  padding: 25px;
  min-height: 100vh;
}

/* === 見出し === */
h1 {
  font-size: 1.4rem;
  margin-bottom: 20px;
  color: #0033cc;
}

/* === テーブル === */
.table th {
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  background: #0033cc;
  color: #fff;
}
.table th button {
  color: #fff;
  border: none;
  background: none;
  width: 100%;
  text-align: center;
  font-weight: bold;
  cursor: pointer;
}
.table th button:hover {
  background: #ffcc00;
  color: #0033cc;
}
.table th.title { cursor: default; }
.table td {
  font-size: .95rem;
  vertical-align: middle;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding-top: 3px;
  padding-bottom: 3px;
}
th.date, th.views { width: 110px; }
td.date { text-align: center; }
td.views { text-align: right; }
td.title { text-align: left; }
.table-hover tbody tr:hover { background: #f6f8ff; }

/* === 広告 === */
.ydn-text-ad {
  background: #f0f4ff;
  border: 1px solid #ccd5ff;
  border-radius: 6px;
  padding: 6px 8px;
  margin: 6px auto;
  width: 96%;
}
.ydn-text-ad a {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.4em;
  max-height: 2.8em;
  min-height: 2.8em;
  color: #0033cc;
  text-decoration: none;
}
.ydn-text-ad a:hover { text-decoration: underline; color: #001a66; }

/* === ページャ === */
nav.paging {
  text-align: center;
  margin-top: 30px;
  margin-bottom: 40px;
}
nav.paging form { display: inline-block; vertical-align: middle; }
nav.paging button {
  border: none;
  background: #0033cc;
  color: #fff;
  padding: 6px 10px;
  margin: 0 4px;
  border-radius: 4px;
  transition: .2s;
}
nav.paging button:hover:not(:disabled){
  background: #ffcc00;
  color: #0033cc;
}

/* === フッター === */
.footer {
  clear: both;             /* float を解除 */
  text-align: center;
  font-size: .85rem;
  color: #777;
  padding: 15px 0;
  border-top: 1px solid #ddd;
  background: #fafafa;
  margin-top: 0;
}
