.horizontal-carousel{--carousel-gap:12px;--carousel-arrow-size:38px;display:grid!important;grid-template-columns:var(--carousel-arrow-size) minmax(0,1fr) var(--carousel-arrow-size);align-items:center;gap:var(--carousel-gap);width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.horizontal-carousel>.carousel-arrow{display:grid;place-items:center;width:var(--carousel-arrow-size);height:var(--carousel-arrow-size);min-width:0;min-height:0;padding:7px;margin:0;border:1px solid #dce3f5;border-radius:50%;background:#fff;color:#07175d;cursor:pointer;box-sizing:border-box}
.carousel-arrow svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.carousel-arrow:disabled{opacity:.3;cursor:default}
.horizontal-carousel.carousel-cards{max-width:1180px;margin-inline:auto}
@media(min-width:1280px){.horizontal-carousel.carousel-wide-cards{max-width:100%;margin-inline:0}}
.carousel-fits>.carousel-arrow{visibility:hidden}
.horizontal-carousel>.carousel-track{display:flex!important;gap:14px;width:100%!important;min-width:0!important;max-width:100%!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x pan-y;box-sizing:border-box;padding:2px 0!important;margin:0!important}
.horizontal-carousel>.carousel-track::-webkit-scrollbar{display:none}
.horizontal-carousel>.carousel-track>*{flex-shrink:0;scroll-snap-align:start;scroll-snap-stop:always;box-sizing:border-box}
.carousel-cards>.carousel-track>*:not(.empty){flex:0 0 var(--carousel-card-width,280px)!important;width:var(--carousel-card-width,280px)!important;min-width:0!important;max-width:100%!important;margin:0!important}
.carousel-groups>.carousel-track>button{width:auto!important;min-width:0!important;max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere;line-height:1.3;flex:0 0 auto;padding:8px 18px!important}
.carousel-track>.empty{width:100%;min-height:90px;display:grid;place-items:center;white-space:normal}
.carousel-track:focus-visible,.carousel-arrow:focus-visible{outline:2px solid #4594e8;outline-offset:-2px}
#page-teacher-home .teacher-profile-groups-track{grid-column:auto}
#page-teacher-home .horizontal-carousel>.carousel-track{order:0!important}
#page-teacher-home .teacher-profile-group-card{max-width:100%;min-width:0;width:230px}
#page-teacher-home .teacher-profile-group-card>b{min-width:0;white-space:normal;overflow-wrap:anywhere}
#page-teacher-journal .teacher-journal-history-head{display:flex;flex-wrap:wrap;min-width:0;gap:12px}
#page-teacher-journal .teacher-journal-history-head>.horizontal-carousel{flex:1 1 320px;width:auto;max-width:100%}
#page-teacher-homework .hw-library>.carousel-groups{margin-bottom:12px}
@media(max-width:680px){
 .horizontal-carousel{--carousel-arrow-size:28px;--carousel-gap:6px}
 .horizontal-carousel>.carousel-arrow{padding:4px}
 .carousel-arrow svg{width:18px;height:18px}
 .horizontal-carousel>.carousel-track{gap:10px}
 .carousel-groups>.carousel-track>button{padding:7px 12px!important;font-size:12px}
 #page-teacher-journal .teacher-journal-history-head>.horizontal-carousel{flex-basis:100%}
}
@media(prefers-reduced-motion:reduce){.horizontal-carousel>.carousel-track{scroll-behavior:auto}}

/* Completed lessons have fixed geometry, independent of the generic auto-fill carousel. */
#page-teacher-journal .horizontal-carousel:has(>#teacher-journal-list){width:100%!important;max-width:100%;margin-inline:0}
#page-teacher-journal #teacher-journal-list.carousel-track{--carousel-card-width:280px!important;gap:14px;justify-content:flex-start;align-items:stretch}
#page-teacher-journal #teacher-journal-list>.journal-history-card{flex:0 0 var(--carousel-card-width)!important;width:var(--carousel-card-width)!important;min-width:var(--carousel-card-width)!important;max-width:var(--carousel-card-width)!important}
@media(min-width:681px) and (max-width:1100px){
 #page-teacher-journal #teacher-journal-list.carousel-track{--carousel-card-width:250px!important}
}
@media(max-width:680px){
 #page-teacher-journal .teacher-journal-library{padding:15px 0}
 #page-teacher-journal .teacher-journal-history-head{padding-inline:15px}
 #page-teacher-journal .horizontal-carousel:has(>#teacher-journal-list){grid-template-columns:minmax(0,1fr);gap:0}
 #page-teacher-journal .horizontal-carousel:has(>#teacher-journal-list)>.carousel-arrow{display:none}
 #page-teacher-journal #teacher-journal-list.carousel-track{--carousel-card-width:82vw!important;padding:2px 4px!important}
}
