/* 画面全体の中央配置と最大幅の制限 */
.all_body { 
	font-family: "メイリオ", Arial, sans-serif; 
	background: #f0f2f5; 
	margin: 0px auto; 
	max-width: 1400px; 
	padding: 0 20px;
	color: #333; 
}
h1 {
	text-align: center;
	color: #5c67f2;
	margin-bottom: 10px;
}
/* 説明BOX */
.info-box {
	max-width: 100%; /* 親要素に合わせる */
	margin: 0 auto 25px;
	background: linear-gradient(135deg, #ffffff 0%, #f8f9ff 100%);
	border: 1px solid #e0e4ff; border-left: 5px solid #5c67f2;
	border-radius: 12px; padding: 15px 20px;
	box-shadow: 0 4px 12px rgba(92, 103, 242, 0.08);
	font-size: 0.9rem; line-height: 1.6;
}

.controls { background: #fff; padding: 15px; border-radius: 8px; margin-bottom: 20px; display: flex; gap: 15px; justify-content: center; align-items: center; box-shadow: 0 2px 5px rgba(0,0,0,0.1); flex-wrap: wrap; }
.controls select { padding: 8px; border: 1px solid #ccc; border-radius: 4px; font-weight: bold; cursor: pointer; background: #fff; }
.controls button { padding: 8px 20px; cursor: pointer; border: none; border-radius: 6px; font-weight: bold; transition: all 0.2s; }
.btn-reset { background: white; color: #ff5252; border: 1px solid #ff5252 !important; }

.wrapper { display: flex; background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,0.1); position: relative; }

/* タイムライン表示関連 */
.time-axis { width: 75px; background: #f8f9fa; border-right: 1px solid #ddd; flex-shrink: 0; padding-top: 40px; }
.hour-label { height: 80px; text-align: center; font-size: 0.75rem; color: #888; display: flex; align-items: start; justify-content: center; }
.hour-label.bold { font-weight: bold; color: #333; font-size: 0.85rem; }

.days-container { display: flex; flex-grow: 1; position: relative; overflow-x: auto; }
.day-column { flex: 1; border-right: 1px solid #ddd; position: relative; min-width: 150px; background: white; cursor: crosshair; }
.day-header { height: 40px; background: #5c67f2; color: white; display: flex; align-items: center; justify-content: center; font-weight: bold; position: sticky; top: 0; z-index: 10; }

.grid-line { position: absolute; left: 0; right: 0; border-bottom: 2px solid #bbb; pointer-events: none; z-index: 1; }
.grid-line.half { border-bottom: 1px dotted #ccc; z-index: 1; }

.anime-card {
	position: absolute; border: 1px solid #a5d8ff;
	border-left: 5px solid #5c67f2; border-radius: 4px; padding: 5px;
	overflow: hidden; font-size: 0.75rem; cursor: pointer; z-index: 5; transition: box-shadow 0.2s;
	box-sizing: border-box; display: flex; flex-direction: column; gap: 2px;
}
.anime-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.2); z-index: 6; }
.anime-card .station { font-size: 0.65rem; color: #666; font-weight: bold; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.anime-card .title { font-weight: bold; color: #111; word-break: break-all; line-height: 1.2; flex-grow: 1; }

/* カラー設定 */
.bg-blue { background: #e7f5ff; border-color: #a5d8ff; --primary-color: #5c67f2; }
.bg-pink { background: #fff0f6; border-color: #ffdeeb; --primary-color: #f06595; }
.bg-green { background: #ebfbee; border-color: #d3f9d8; --primary-color: #51cf66; }
.bg-yellow { background: #fff9db; border-color: #fff3bf; --primary-color: #fcc419; }
.bg-purple { background: #f8f0fc; border-color: #f3d9fa; --primary-color: #ae3ec9; }
.bg-orange { background: #fff4e6; border-color: #ffd8a8; --primary-color: #fd7e14; }
.bg-mint { background: #e6fcf5; border-color: #c3fae9; --primary-color: #20c997; }
