/* ===== スクロール対応ラッパー ===== */
.curriculum-wrapper {
    display: block;
    width: 95%;
    overflow-x: auto;  /* 横スクロール許可 */
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 1em;
    border-radius: 8px;
}

/* ===== カリキュラム表 ===== */
.curriculum-grid {
    display: grid;
    /* 柔軟な列幅：区分(固定幅) + 8列（最小100px, 最大1fr） */
    grid-template-columns: 80px repeat(8, minmax(100px, 1fr));
    border: 1px solid rgba(255, 255, 255, 0.4);
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.8);
    grid-auto-rows: minmax(40px, auto); 
    min-width: 1110px; /* スクロール発生のしきい値を小さく */
}


/* ===== セル ===== */
.cell {
    border-left: 1px solid rgba(255, 255, 255, 0.1); 
    border-right: 1px solid rgba(255, 255, 255, 0.1);
    padding: 0.8em 0.4em;
    text-align: center;
    font-size: 0.85em;
    color: #f0f0f0;
    line-height: 1.4;
    white-space: normal;
}

/* ===== ヘッダー ===== */
.header-main {
    background: #000;
    color: #fff;
    font-weight: bold;
    text-align: center;
    font-size:1.05em;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2); 
}
.header-year {
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    font-weight: bold;
    font-size:1.2em;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
.header-term {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    font-weight: bold;
    font-size:1.05em;
    line-height: 1.1;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

/* ===== 科目区分色 ===== */
.教養 { background-color: rgba(255, 0, 0, 0.3); color: #fff;  }
.必修 { background-color: rgba(255, 255, 0, 0.3); color: #fff;  }
.選択 { background-color: rgba(0, 255, 0, 0.3); color: #fff; }

.category {
    writing-mode: vertical-rl;
    text-orientation: upright;
    background: rgba(255, 255, 255, 0.15);
    font-weight: bold;
    font-size:1.05em;
    color: #fff;
}
