
/* ==================================================
    공통 변수
================================================== */
:root{
    --key-color:#2C5BF6;
    --font-color:#333333;
}

/* ==================================================
    학사일정 공통 레이아웃
================================================== */
.academic-wrap{width:100%;max-width:1200px;margin:0 auto;padding-bottom:60px;color:var(--font-color);}
/* 안내문 */
.academic-wrap .note{position:relative;display:flex;align-items:center;gap:8px;width:100%;padding:clamp(16px,calc(16px + (24 - 16) * ((100vw - 360px) / 840)),24px) clamp(24px,calc(24px + (32 - 24) * ((100vw - 360px) / 840)),32px);border-radius:8px;background:#F8F8F8;color:#555555;font-size:clamp(14px,calc(14px + (16 - 14) * ((100vw - 360px) / 840)),16px);font-weight:400;letter-spacing:-0.01em;}
.academic-wrap .note .ico-speakerphone{min-width:20px;width:clamp(20px,calc(20px + (24 - 20) * ((100vw - 360px) / 840)),24px);height:clamp(20px,calc(20px + (24 - 20) * ((100vw - 360px) / 840)),24px);background-repeat:no-repeat;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cg clip-path='url(%23clip0_68_2794)'%3E%3Cpath d='M18 8C18.7956 8 19.5587 8.31607 20.1213 8.87868C20.6839 9.44129 21 10.2044 21 11C21 11.7956 20.6839 12.5587 20.1213 13.1213C19.5587 13.6839 18.7956 14 18 14' stroke='%23777777' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M10 8V19C10 19.2652 9.89464 19.5196 9.70711 19.7071C9.51957 19.8946 9.26522 20 9 20H8C7.73478 20 7.48043 19.8946 7.29289 19.7071C7.10536 19.5196 7 19.2652 7 19V14' stroke='%23777777' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M12 7.99995L16.524 4.22995C16.6555 4.12046 16.8154 4.0507 16.9851 4.02885C17.1548 4.00701 17.3271 4.03398 17.482 4.1066C17.6369 4.17922 17.7679 4.29449 17.8597 4.4389C17.9514 4.5833 18.0001 4.75087 18 4.92195V17.0779C18.0001 17.249 17.9514 17.4166 17.8597 17.561C17.7679 17.7054 17.6369 17.8207 17.482 17.8933C17.3271 17.9659 17.1548 17.9929 16.9851 17.971C16.8154 17.9492 16.6555 17.8794 16.524 17.7699L12 13.9999H4C3.73478 13.9999 3.48043 13.8946 3.29289 13.7071C3.10536 13.5195 3 13.2652 3 12.9999V8.99995C3 8.73473 3.10536 8.48038 3.29289 8.29284C3.48043 8.1053 3.73478 7.99995 4 7.99995H12' stroke='%23777777' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_68_2794'%3E%3Crect width='24' height='24' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");background-size:contain;background-position:center;}


/* ==================================================
    연도/월 선택 영역
================================================== */
.schedule-date{display:flex;align-items:center;gap:12px;width:100%;height:106px;padding:clamp(16px,calc(16px + (32 - 16) * ((100vw - 360px) / 840)),32px) 0;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.schedule-date .month-mobile-select{display:none;}
.schedule-date .month-mobile-select .select-btn{width:100%;}
.schedule-date a{display:inline-flex;align-items:center;justify-content:center;flex:0 0 72px;width:72px;height:42px;border:1px solid #DBDEE5;border-radius:6px;color:var(--font-color);font-size:14px;font-weight:400;line-height:20px;letter-spacing:-0.01em;text-decoration:none;}
.schedule-date a.on,.schedule-date a.btn-all.on{border-color:var(--key-color);background:var(--key-color);color:#fff;font-weight:600;}
.schedule-date .calendar-year-dropdown{position:relative;flex:0 0 108px;width:108px;}
.schedule-date .calendar-year-dropdown input[type="hidden"]{display:none;}
.schedule-date .calendar-year-dropdown .select-btn{width:100%;}
/* 월별 스와이프 */
.month-swiper{flex:1 1 auto;min-width:0;overflow:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.month-swiper .swiper-wrapper{transform:translateZ(0);backface-visibility:hidden;align-items:center;}
.month-swiper::-webkit-scrollbar{display:none;}
.month-swiper .swiper-wrapper{display:flex;align-items:center;width:max-content;min-width:100%;}
.month-swiper .swiper-slide{width:auto;flex-shrink:0;}
.month-swiper .btn-a{display:inline-flex;align-items:center;justify-content:center;width:72px;height:42px;margin:0;padding:0;border:1px solid #DBDEE5;border-radius:6px;background:var(--white);color:var(--font-color);font-size:14px;font-weight:400;line-height:20px;letter-spacing:-0.01em;text-decoration:none;box-sizing:border-box;cursor:pointer;}
.month-swiper .btn-a.on{border-color:var(--key-color);background:var(--key-color);color:#fff;font-weight:600;}


/* ==================================================
    학사일정 목록
================================================== */
.schedule-list{display:flex;flex-direction:column;gap:32px;width:100%;height:auto;max-height:none;margin:0;padding:0;border:0;list-style:none;overflow:visible;}
.schedule-box{display:grid;grid-template-columns:300px minmax(0,1fr);grid-template-rows:32px auto;column-gap:60px;width:100%;min-height:320px;padding:40px 8px 40px 60px;border:1px solid #E5E5E5;border-radius:12px;clear:both;overflow:hidden;}
/* 일정 월 표시 */
.schedule-box .month{display:inline-flex;align-items:center;justify-content:center;grid-column:1;grid-row:1;justify-self:start;max-height:32px;min-width:41px;margin:0;padding:4px 12px;border-radius:4px;background:#F1F3F8;color:var(--font-color);font-size:15px;font-weight:600;letter-spacing:-0.02em;}
/* 월별 캘린더 */
.schedule-box .calendar-box{grid-column:1;grid-row:2;width:300px;margin-top:12px;}
.schedule-box .calendar{width:100%;border-collapse:separate;border-spacing:4px;table-layout:fixed;}
.schedule-box .calendar th,.schedule-box .calendar td{width:36px;height:36px;padding:0;border:0;color:var(--font-color);font-size:14px;font-weight:400;line-height:20px;letter-spacing:-0.01em;text-align:center;vertical-align:middle;}
.schedule-box .calendar thead td{color:#999999;}
.schedule-box .calendar td.sun{color:#ED2024;}
.schedule-box .calendar td.on{background:transparent;background-image:radial-gradient(circle 18px at center, #ECF5FD 0 18px, transparent 18px); color:var(--key-color);font-weight:600;}
/* 일정 상세 목록 */
.schedule-box .list{display:flex;flex-direction:column;justify-content:center;gap:8px;grid-column:2;grid-row:1 / span 2;align-self:start;width:100%;min-width:0;height:280px;max-height:280px;margin:0;padding:0 40px 0 60px;border-left:1px solid #EDEDED;list-style:none;overflow-y:auto;overflow-x:hidden;}
.schedule-box .list.is-scroll{display:block;}
.schedule-box .list.is-scroll li + li{margin-top:8px;}
.schedule-box .list::-webkit-scrollbar{width:4px;}
.schedule-box .list::-webkit-scrollbar-thumb{background:#666;border-radius:4px;}
.schedule-box .list::-webkit-scrollbar-track{background:#eee;}
.schedule-box .list:empty{align-items:center;justify-content:center;}
.schedule-box .list:empty:before{color:#999999;font-size:16px;font-weight:400;line-height:24px;letter-spacing:-0.01em;}
.schedule-box .list li{display:flex;align-items:flex-start;gap:12px;width:100%;margin:0;padding:0;color:#777777;font-size:clamp(14px,calc(14px + (16 - 14) * ((100vw - 360px) / 840)),16px); font-weight:400;line-height:24px;letter-spacing:-0.01em;}
.schedule-box .list li.empty{justify-content:center;align-items:center;height:100%;}
.schedule-box .list li.empty div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;}
.schedule-box .list li:before{content:"·";flex:0 0 auto;color:#555555;}
.schedule-box .list li.empty:before{display:none;}
.schedule-box .list strong{flex:0 0 auto;color:#555555;font-size:inherit;font-weight:500;line-height:inherit;white-space:nowrap;}


/* ====================================================
   RESPONSIVE (Media Queries)
==================================================== */
/* 태블릿 이하 (1199px 이하) */
@media (max-width: 1199px){
    .academic-wrap{max-width:none;padding:0 24px 60px;}
    .schedule-box{grid-template-columns:300px minmax(0,1fr);column-gap:32px;padding:40px 8px 40px 32px;}
    /* 일정 상세 목록 */
    .schedule-box .list{padding-right:32px;padding-left:32px;}
}
/* 모바일 이하 (767px 이하) */
@media (max-width:767px){
    .academic-wrap{max-width:none;padding:16px 16px 40px;}    
    /* 안내문 */
    .academic-wrap .note{align-items:flex-start;}
    .month-swiper{display:none;}    
    /*연도/월 선택 영역*/
    .schedule-date{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;height:auto;overflow:visible;}
    .schedule-date .calendar-year-dropdown{width:100%;flex:none;}
    .schedule-date .month-mobile-select{display:block;}
    .academic-wrap 
    /* 학사일정 목록 */
    .schedule-list{gap:16px;}
    .academic-wrap .schedule-list .schedule-box{display:flex;flex-direction:column;gap:16px;min-height:0;padding:24px;border-radius:8px;overflow:visible;}
    .schedule-box .month{align-self:flex-start;height:32px;min-width:41px;padding:4px 12px;border-radius:4px;line-height:24px;}
    .schedule-box .calendar-box,.schedule-box .list{width:100%;}
    .schedule-box .calendar-box{margin-top:0;}
    .schedule-box .calendar th,.schedule-box .calendar td{height:36px;font-size:14px;line-height:20px;}
    .schedule-box .list{height:auto;max-height:none;padding:16px 0 0;border-top:1px solid #EDEDED;border-left:0;overflow-y:auto;overflow-x:hidden;}
    .schedule-box .list li{gap:10px;line-height:20px;}
}



