.csw-wrap{width:100%}
.csw-tabs{--csw-vis:7;--csw-gap:14px;position:relative;display:flex;gap:var(--csw-gap);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;-ms-overflow-style:none;touch-action:pan-x pan-y;padding:2px}
.csw-tabs::-webkit-scrollbar{display:none}
.csw-tabs.is-scrollable{cursor:grab}
.csw-tabs.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.csw-tabs.is-dragging .csw-tab{pointer-events:none}
.csw-tab{flex:0 0 calc((100% - 4px - var(--csw-gap) * (var(--csw-vis) - 1)) / var(--csw-vis));min-width:0;scroll-snap-align:start;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;font:inherit;line-height:1.25;transition:background-color .25s,border-color .25s,color .25s;-webkit-appearance:none;appearance:none;margin:0}
.csw-tab-day{font-size:15px;font-weight:400}
.csw-tab-num{font-size:22px;font-weight:700}
.csw-tab::after{content:"";position:absolute;bottom:5px;left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;opacity:0;background:transparent}
.csw-tab:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.csw-heading{margin:22px 0 14px;font-size:20px;font-weight:600}
.csw-table{width:100%}
.csw-cell,.csw-time,.csw-class,.csw-instr,.csw-action{min-width:0;overflow-wrap:break-word}
.csw-label{display:none}
.csw-head,.csw-row{display:grid;grid-template-columns:1.1fr 1.7fr 1.3fr 1fr;align-items:center;column-gap:16px}
.csw-head{font-size:12px;font-weight:600;letter-spacing:.08em}
.csw-row[hidden],.csw-empty[hidden]{display:none}
.csw-row{transition:background-color .25s}
.csw-time{font-size:17px}
.csw-title{font-size:16px;font-weight:500}
.csw-dur{font-size:13px;margin-top:2px}
.csw-instr{font-size:14px}
.csw-action{display:flex;justify-content:flex-end}
.csw-btn{display:inline-flex;box-sizing:border-box;align-items:center;text-decoration:none;font-size:13px;transition:background-color .25s,color .25s,border-color .25s;line-height:1.2}
.csw-btn i,.csw-btn svg{font-size:12px;width:1em;height:1em;transition:transform .25s,translate .25s,color .25s,fill .25s}
.csw-empty{padding:30px;text-align:center}
.csw-anim .csw-body.is-swap{animation:cswFade .35s ease}
@keyframes cswFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

@media (max-width:767px){
 .csw-head{display:none}
 .csw-row{display:flex;flex-direction:column;row-gap:var(--csw-mrow,12px);align-items:stretch}
 .csw-cell{display:grid;grid-template-columns:var(--csw-lw,110px) minmax(0,1fr);column-gap:var(--csw-lg,16px);align-items:var(--csw-valign,center)}
 .csw-label{display:block;text-align:var(--csw-lalign,left);font-size:12px;font-weight:600;letter-spacing:.06em;line-height:1.3}
 .csw-label,.csw-cell .csw-time,.csw-cell .csw-class,.csw-cell .csw-instr{margin:0;padding:0}
 .csw-cell .csw-time,.csw-cell .csw-class,.csw-cell .csw-instr{line-height:1.3;transform:translateY(var(--csw-dnudge,0px))}
 .csw-label{transform:translateY(var(--csw-lnudge,2px))}
 .csw-cell .csw-time,.csw-cell .csw-class,.csw-cell .csw-instr{text-align:var(--csw-dalign,left)}
 .csw-action{margin-top:var(--csw-btntop,6px)}
 .csw-mob-stack .csw-cell{grid-template-columns:minmax(0,1fr);row-gap:2px}
 .csw-mob-hidden .csw-label{display:none}
 .csw-mob-hidden .csw-cell{grid-template-columns:minmax(0,1fr)}
 .csw-mob-btnfull-yes .csw-action{display:block}
 .csw-mob-btnfull-yes .csw-btn{display:flex;width:100%;justify-content:space-between}
}
@media (prefers-reduced-motion:reduce){.csw-anim .csw-body.is-swap{animation:none}}
