/* Customer-facing daily roster — scoped styling, follows Exotic Touch brand. */
.public-roster-hero{padding-bottom:35px}.public-roster-main{padding-bottom:95px}.public-roster-title{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.public-roster-title h2{margin:0}.public-roster-zone{font-size:11px;letter-spacing:.11em;opacity:.65}.public-roster-branches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:25px}.public-roster-branch{background:#fff;border:1px solid rgba(53,76,64,.18);padding:19px 20px;border-radius:15px;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:7px;transition:transform .2s,border .2s,box-shadow .2s}.public-roster-branch:hover{transform:translateY(-3px)}.public-roster-branch.selected{border-color:#557660;box-shadow:0 4px 22px rgba(20,50,30,.09);background:#f5f8f3}.public-roster-branch small{font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.65}.public-roster-branch strong{font-size:16px;line-height:1.4}.public-roster-dates{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:34px}.public-roster-date{padding:15px 7px;text-align:center;border:1px solid rgba(53,76,64,.16);border-radius:12px;color:inherit;text-decoration:none;display:flex;flex-direction:column;gap:5px}.public-roster-date span{font-size:10px;letter-spacing:.08em;opacity:.7}.public-roster-date strong{font-size:16px}.public-roster-date.selected{background:#385c46;color:#fff;border-color:#385c46}.public-roster-summary{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid rgba(55,73,55,.18)}.public-roster-summary h2{margin:6px 0}.public-roster-summary p:last-child{margin:0}.public-roster-summary>span{font-size:13px;opacity:.7;white-space:nowrap}.public-roster-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.public-roster-card{border:1px solid rgba(53,76,64,.13);background:#fff;border-radius:17px;overflow:hidden;box-shadow:0 10px 35px rgba(19,52,29,.055)}.public-roster-picture{display:block;position:relative;aspect-ratio:4/4.3;overflow:hidden;background:#eaece6}.public-roster-picture img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .4s}.public-roster-picture:hover img{transform:scale(1.045)}.public-roster-picture span{position:absolute;bottom:14px;left:14px;background:rgba(255,255,255,.95);border-radius:99px;padding:8px 12px;color:#25432f;font-size:10px;letter-spacing:.08em}.public-roster-info{padding:22px}.public-roster-info h3{margin:3px 0 9px;font-size:25px}.public-roster-hours{font-size:15px;font-weight:600}.public-roster-hours small{opacity:.55;margin-left:3px}.public-roster-actions{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:22px}.public-roster-actions>a:first-child{font-size:13px}.public-roster-actions .button{white-space:normal;text-align:center}.public-roster-empty{padding:48px 26px;background:#f4f7f1;border-radius:16px;text-align:center}.public-roster-empty h3{margin-top:0}.public-roster-disclaimer{font-size:12px;line-height:1.8;opacity:.66;margin-top:30px}
@media(max-width:900px){.public-roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.public-roster-branches{gap:8px}.public-roster-branch{padding:15px}}
@media(max-width:620px){.public-roster-title{display:block}.public-roster-zone{display:block;margin-top:10px}.public-roster-branches{grid-template-columns:1fr}.public-roster-branch{padding:12px 16px;gap:2px}.public-roster-dates{display:flex;overflow-x:auto;gap:7px;scroll-snap-type:x mandatory;padding-bottom:8px}.public-roster-date{flex:0 0 75px;scroll-snap-align:start}.public-roster-summary{align-items:start;flex-direction:column;gap:12px}.public-roster-grid{grid-template-columns:1fr;gap:18px}.public-roster-picture{aspect-ratio:4/3.8}.public-roster-hero{padding-bottom:22px}}
