/* A compact, centered calendar following the supplied schedule reference. */
.schedule{background:var(--paper)}
.schedule .shell{max-width:680px}
.schedule .head{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;text-align:center;justify-items:center;margin-bottom:24px}
.schedule .schedule-kicker{color:#24509d;font-size:11px;letter-spacing:.22em;line-height:1.4}
.schedule .head h2{font-family:'Noto Sans KR','Noto Sans JP','Noto Sans SC',sans-serif;font-size:24px;font-weight:600;line-height:1.4;letter-spacing:-.025em}
.schedule .head p{margin:4px 0 0;font-size:14px;line-height:1.9;color:#536b8b}
.schedule .cal-nav{display:flex;justify-content:center;align-items:center;gap:12px;margin:0 auto 20px}
.schedule .cal-arrow{width:40px;height:40px;background:transparent;border-color:#d7dfeb;color:#24509d}
.schedule .cal-tabs{background:#edf2f8;border-color:#dce3ee}
.schedule .cal-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;padding:4px;border:1px solid #dce3ee;border-radius:999px}
.schedule .cal-tabs button{height:36px;min-width:132px;border:0;border-radius:999px;background:transparent;padding:0 14px;color:#536b8b;font-size:12px;cursor:pointer}
.schedule .cal-tabs button.on,.schedule .cal-tabs button:hover,.schedule .cal-arrow:hover:not(:disabled){background:#24509d;border-color:#24509d;color:#fff}
.schedule button:focus-visible{outline:2px solid #24509d;outline-offset:3px}
.schedule .calendar{max-width:600px;margin-inline:auto;padding:30px 20px 26px;background:linear-gradient(160deg,#f5f7fc,#edf1f8);border:1px solid #dfe5f0;border-radius:20px;box-shadow:none}
.schedule .cal-top{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:0 6px 14px;border-color:#dde4ee}
.schedule .cal-top .eyebrow{font-size:9px;letter-spacing:.14em;line-height:1.3;margin-bottom:5px;color:#7c8fa9}
.schedule .cal-title{font:500 18px/1.2 'Cormorant Garamond',serif;letter-spacing:.13em;text-transform:uppercase;color:#184688}
.schedule .cal-month{min-width:0;font:500 42px/1 'Cormorant Garamond',serif;color:#bbc8dc}
.schedule .cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));padding-bottom:8px}
.schedule .dow{padding:12px 0;border-bottom:1px solid #e0e6ef;font-size:12px;line-height:1.3;color:#7185a1}
.schedule .dow:first-child{color:#bf6570}
.schedule .dow:nth-child(7){color:#24509d}
.schedule .day{min-width:0;min-height:86px;gap:5px;padding:17px 0 9px;font:500 21px/1 'Cormorant Garamond',serif;color:#234879}
.schedule .day .date{width:40px;height:40px;flex:0 0 40px}
.schedule .day.available .date{background:linear-gradient(145deg,#3d74cc,#17458f);box-shadow:0 3px 7px #204d952b;font-weight:600;color:#fff}
.schedule .day.holiday .date{color:#bf4f5e}
.schedule .day.available.holiday .date{border:1.5px solid #5f8fc6;background:#eaf2fb;box-shadow:0 3px 7px #204d951c;color:#b44352}
.schedule .day.today .date{outline:2px solid #96abc0;outline-offset:2px}
.schedule .day.day-empty{pointer-events:none}
.schedule .day.day-closed{background:repeating-linear-gradient(135deg,transparent 0,transparent 8px,#6f8ca50c 8px,#6f8ca50c 9px);border-radius:8px;color:#a5b0bb;pointer-events:none}
.schedule .day.day-closed.holiday .date{color:#bd9299}
.schedule .closed-note{font:10px/1.2 'Noto Sans KR','Noto Sans JP','Noto Sans SC',sans-serif;color:#8b99a6;white-space:nowrap}
.schedule .available-note{font-size:11px;line-height:1.2;letter-spacing:-.03em;color:#24509d;white-space:nowrap}
.schedule .cal-legend{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:18px;color:#7a8eac;font-size:12px;line-height:1.5}
.schedule .cal-legend-dot{width:13px;height:13px;border-radius:50%;background:#24509d}
.schedule .schedule-retry{margin-left:7px;border:0;border-bottom:1px solid currentColor;background:transparent;padding:0;color:#24509d;font:inherit;cursor:pointer}
@media(max-width:540px){
  .schedule .shell{width:calc(100% - 28px)}
  .schedule .head h2{font-size:22px}
  .schedule .head p{font-size:14px;line-height:1.85}
  .schedule .calendar{padding:26px 10px 23px;border-radius:19px}
  .schedule .cal-nav{align-items:stretch;gap:6px}
  .schedule .cal-tabs{flex:1;border-radius:17px}
  .schedule .cal-tabs button{height:34px;min-width:0;flex:1 1 128px;padding:0 8px;font-size:11px}
  .schedule .day{min-height:78px;padding-top:14px;font-size:20px}
  .schedule .day .date{width:38px;height:38px;flex-basis:38px}
  .schedule .available-note{font-size:10px}
  .schedule .cal-month{font-size:39px}
}
@media(max-width:360px){
  .schedule .shell{width:calc(100% - 28px)}
  .schedule .calendar{padding-inline:9px}
  .schedule .day .date{width:36px;height:36px;flex-basis:36px}
  .schedule .available-note{font-size:9px}
}
