:root {
  --bg: #ffffff;
  --text: #0f172a;
  --muted: #475569;
  --line: #e2e8f0;
  --chip: #0b0b0b;
  --card: #ffffff;
  --shadow: 0 10px 25px rgba(0,0,0,.06);
  --radius: 16px;
}

.schedule-container {
  max-width: 1300px;
  margin: 0 auto;
  padding: 20px 16px 40px;
}

/* ====== 共通グリッド ====== */

.schedule-grid {
  display: block;
  gap: 12px;
}

.day-col {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.day-head {
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(6px);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  text-align: center;
  font-weight: 700;
  padding: 8px 10px;
  z-index: 10;
}

.col-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* ====== カード ====== */

.card {
  position: relative;
  border: 1px solid var(--line);
  background: var(--card);
  border-radius: var(--radius);
  padding: 12px;
  box-shadow: var(--shadow);
  overflow: hidden;
}

.accent {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 8px;
  background: linear-gradient(90deg, var(--ac1), var(--ac2));
  border-top-left-radius: inherit;
  border-top-right-radius: inherit;
}

.time {
  font-size: 14px;
  font-weight: 400;
  letter-spacing: .2px;
}

.entries {
  margin-top: 2px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.entry-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex-wrap: wrap;
  align-items: baseline;
  padding-bottom: 8px;
}

.entry-row + .entry-row {
  border-top: 1.5px solid #b8c4d4;
  padding-top: 8px;
}

.entry-title {
  font-weight: 600;
  white-space: pre-line;
}

.entry-instructor {
  color: var(--muted);
  font-size: 12px;
}

/* ====== SP: タブ & 1日ずつ表示 ====== */

.day-tabs {
  display: flex;
  gap: 8px;
  overflow: auto;
  padding-bottom: 6px;
}

.day-tabs::-webkit-scrollbar {
  display: none;
}

.tab {
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #334155;
  padding: 8px 12px;
  border-radius: 999px;
  font-size: 14px;
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}

.tab.active {
  background: var(--chip);
  border-color: var(--chip);
  color: #fff;
}

/* SP: デフォルトは1日だけ表示 */

.day-col {
  display: none;
}

.day-col.active {
  display: flex;
}

/* ====== PC: 7列グリッド ====== */

@media (min-width: 900px) {
  .day-tabs {
    display: none;
  }

  .schedule-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
  }

  .day-col {
    display: flex;
  }

  .entry-row + .entry-row {
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
  }
}

/* ====== 定休日 ====== */

.tab.closed {
  color: #dc2626;
  border-color: #fecaca;
}

.tab.closed.active {
  background: #dc2626;
  border-color: #dc2626;
  color: #fff;
}

/* ====== フロアバッジ ====== */
.time-floor-row {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
  width: 100%;
}

.floor-badge {
  color: #fff;
  font-size: 11px;
  margin-left: 10px;
  padding: 2px 4px;
  border-radius: 4px;
  white-space: nowrap;
  background: #94a3b8; /* デフォルト色 */
}

/* フロアごとの背景色 */
.floor-1 {
  background: #9f9f9f; /* 1階: グレー */
}

.floor-2 {
  background: #bf7e00; /* 2階: オレンジ */
}


/* ====== pc:フロアバッジ ====== */
@media (min-width: 900px) {
  .time-floor-row {
    justify-content: space-between;
  }

  .floor-badge {
    margin-left: 0;
  }
}

/* ====== 注意書き ====== */

.class_notice {
  margin-top: 20px;
  color: #475569;
  font-size: 12px;
  line-height: 1.6;
  text-align: left;
}

.class_notice p {
  margin: 6px 0;
}
