.schedule-view{max-width:1200px;padding-left:10px;padding-right:10px}
.schedule-view header{padding-bottom:9px}
.schedule-toolbar{display:grid;gap:8px;margin:0 0 10px}
.schedule-month-row{display:flex;align-items:flex-end;justify-content:flex-start;gap:8px;padding:0 3px}
.schedule-month-row strong{font-size:22px;letter-spacing:-.7px}
.schedule-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;background:#f2f5f6;border-radius:11px;padding:4px}
.schedule-tabs button{min-height:38px;border:0;border-radius:8px;background:transparent;color:#607078;font-size:13px;font-weight:750}
.schedule-tabs button.active{background:#fff;color:#172327;box-shadow:0 1px 7px rgb(22 42 50 / .12)}
.schedule-nav{display:flex;align-items:center;justify-content:center;gap:7px;min-height:30px}
.schedule-nav button{width:32px;height:30px;border:1px solid #d5dde0;border-radius:8px;background:#fff;color:#42565f;font-size:18px;line-height:1}.schedule-nav button[hidden]{display:none}.schedule-nav button:disabled{opacity:.25}.schedule-nav strong{min-width:100px;text-align:center;font-size:13px;color:#42565f}
.schedule-loading,.schedule-empty{margin:34px auto 0;text-align:center;color:#718087}.schedule-loading{font-size:13px}.schedule-empty{max-width:320px;padding:22px 18px;border:1px dashed #c7d1d5;border-radius:13px;background:#fafbfb;line-height:1.6}.schedule-empty strong{display:block;color:#263a42;font-size:17px;margin-bottom:5px}
.schedule-table-wrap{position:relative;width:100%;max-height:calc(100dvh - 220px);overflow:auto;border:1px solid #d7dfe2;border-radius:12px;background:#fff;overscroll-behavior:contain;box-shadow:0 6px 20px rgb(33 54 62 / .055)}
.schedule-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-variant-numeric:tabular-nums}
.schedule-table th,.schedule-table td{height:40px;padding:3px 4px;border-right:1px solid #e3e8ea;border-bottom:1px solid #e3e8ea;text-align:center;white-space:nowrap}
.schedule-table tr:last-child th,.schedule-table tr:last-child td{border-bottom:0}.schedule-table th:last-child,.schedule-table td:last-child{border-right:0}
.schedule-table thead th{position:sticky;top:0;z-index:3;background:#f5f7f8;color:#44575f}
.schedule-name-head,.schedule-name{position:sticky!important;left:0;z-index:4!important;min-width:72px;max-width:72px;background:#fff!important;text-align:left!important;padding-left:7px!important;font-weight:750;color:#263a42;font-size:12px;overflow:hidden;text-overflow:ellipsis}
.schedule-name-head{z-index:6!important;background:#eef2f4!important;text-align:center!important;padding-left:4px!important}
.schedule-date-head{min-width:56px}.schedule-date-head strong{display:block;font-size:13px}.schedule-date-head small{display:block;margin-top:1px;color:#7c898e;font-size:10px;font-weight:650}
.schedule-code{min-width:56px;font-size:11px;font-weight:750;color:#253940;background:#fff;letter-spacing:-.2px}
.schedule-month .schedule-code,.schedule-month .schedule-date-head{min-width:58px}
/* 일주일: 이름 + 7일을 모바일 화면 폭 안에 고정 */
.schedule-week{width:100%;min-width:100%;table-layout:fixed}
.schedule-week .schedule-name-head,.schedule-week .schedule-name{width:62px;min-width:62px;max-width:62px;padding-left:5px!important;font-size:11px}
.schedule-week .schedule-date-head,.schedule-week .schedule-code{width:auto;min-width:0;max-width:none;padding-left:1px;padding-right:1px}
.schedule-week .schedule-date-head strong{font-size:12px}.schedule-week .schedule-date-head small{font-size:9px}
.schedule-week .schedule-code{font-size:10px;letter-spacing:-.45px}
/* 당일: 세로 공간을 최대한 아껴 한눈에 많은 인원 표시 */
.schedule-day{width:100%;min-width:100%;table-layout:fixed}
.schedule-day th,.schedule-day td{height:34px;padding-top:2px;padding-bottom:2px}
.schedule-day .schedule-name-head,.schedule-day .schedule-name{width:92px;min-width:92px;max-width:92px;font-size:11px}
.schedule-day .schedule-date-head,.schedule-day .schedule-code{width:auto;min-width:0;max-width:none;font-size:12px}
.schedule-day .schedule-date-head strong{font-size:13px}.schedule-day .schedule-date-head small{font-size:9px}
.tone-empty{color:#b6c0c4!important}.tone-rest{background:#f2f4f5!important;color:#718087!important}.tone-a{background:#eef6fb!important;color:#2f657f!important}.tone-p{background:#fff5e9!important;color:#9b5a16!important}.tone-e{background:#f5f0fa!important;color:#71548b!important}.tone-leave{background:#eef7f1!important;color:#3f7654!important}.tone-other{background:#fbf5ef!important;color:#755c48!important}
@media(max-width:390px){
  .schedule-view{padding-left:7px;padding-right:7px}
  .schedule-week .schedule-name-head,.schedule-week .schedule-name{width:56px;min-width:56px;max-width:56px;font-size:10px}
  .schedule-week .schedule-code{font-size:9px;letter-spacing:-.55px}
  .schedule-week .schedule-date-head strong{font-size:11px}.schedule-week .schedule-date-head small{font-size:8px}
}
@media(min-width:700px){
  .schedule-view{padding-left:20px;padding-right:20px}
  .schedule-table-wrap{max-height:calc(100dvh - 205px)}
  .schedule-name-head,.schedule-name{min-width:96px;max-width:96px}
  .schedule-table th,.schedule-table td{height:42px}
  .schedule-month .schedule-code,.schedule-month .schedule-date-head{min-width:66px}
  .schedule-week .schedule-name-head,.schedule-week .schedule-name{width:96px;min-width:96px;max-width:96px;font-size:12px}
  .schedule-week .schedule-code{font-size:11px}
  .schedule-day .schedule-name-head,.schedule-day .schedule-name{width:120px;min-width:120px;max-width:120px}
  .schedule-day th,.schedule-day td{height:36px}
}
