/* R170: short weekly overview, derived entirely from existing schedule inputs. */
.f24-sp { margin: .75rem 0 1rem; padding: .9rem; border: 1px solid #dbeafe; border-radius: 1rem; background: #f8fbff; }
.f24-sp-top { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:.7rem; }
.f24-sp-top p { margin:0 0 .12rem; color:#64748b; font-size:.64rem; font-weight:800; letter-spacing:.07em; }
.f24-sp-top h4 { margin:0; color:#1e293b; font-size:.88rem; font-weight:800; }
.f24-sp-top small { max-width:15rem; color:#64748b; font-size:.7rem; line-height:1.28; text-align:right; }
.f24-sp-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.38rem; }
.f24-sp-day { min-width:0; padding:.55rem .28rem; border:1px solid #e2e8f0; border-radius:.7rem; background:#fff; color:#94a3b8; text-align:center; }
.f24-sp-day b,.f24-sp-day span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.f24-sp-day b { font-size:.67rem; font-weight:800; }
.f24-sp-day span { margin-top:.18rem; font-size:.65rem; }
.f24-sp-day.is-open { border-color:#a5b4fc; background:#eef2ff; color:#3730a3; }
@media (max-width:640px) { .f24-sp { padding:.75rem; } .f24-sp-top small { display:none; } .f24-sp-grid { display:flex; overflow-x:auto; padding-bottom:.1rem; } .f24-sp-day { flex:0 0 4.1rem; } }
