/* Weekly grid with full-day Open Gym visibility and concurrent 1-hour classes. */
.artio-schedule{max-width:100%;margin-top:8px}
.planning-legend{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:15px}
.planning-legend-item{padding:9px 12px;border:1px solid #dce5f0;border-radius:100px;background:#f1f5fa;color:#274366;font-size:.82rem;font-weight:750}
.planning-legend-open{border-color:#96d8af;background:#e1f6e9;color:#146036}
.planning-week-scroller{max-width:100%;overflow:auto;border:1px solid #dfe6ef;border-radius:20px;background:#fff;box-shadow:0 12px 32px rgba(0,26,66,.07);overscroll-behavior-inline:contain}
.planning-week{width:100%;min-width:1160px;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:.8rem;color:#001a42}
.planning-caption{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.planning-week thead th{background:#001a42;color:#fff;text-align:center;padding:14px 5px;border-right:1px solid rgba(255,255,255,.16);vertical-align:top}
.planning-week th:first-child{width:97px;position:sticky;left:0;z-index:2}
.planning-week thead th:first-child{z-index:3}
.planning-day-name{display:block;font-weight:900;font-size:.93rem;margin:0 0 9px}
.planning-open-hours{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 3px;border-radius:12px;background:#e1f6e9;color:#146036}
.planning-open-label{font-size:.7rem;font-weight:900;letter-spacing:.09em}
.planning-open-time{font-weight:900;font-size:.77rem;line-height:1.2}
.planning-time-head{font-size:.76rem;line-height:1.5}
.planning-week tbody th{background:#edf4fc;font-weight:900;white-space:nowrap;text-align:center;vertical-align:middle;border-bottom:1px solid #dfe6ef;padding:9px 4px}
.planning-time strong,.planning-time-end{display:block}
.planning-time strong{font-size:.95rem}
.planning-time-end{margin-top:3px;font-size:.72rem;color:#476388}
.planning-week tbody td{height:93px;vertical-align:middle;text-align:center;padding:5px;border-bottom:1px solid #e4eaf2;border-left:1px solid #e4eaf2}
.planning-week tbody tr:last-child td,.planning-week tbody tr:last-child th{border-bottom:0}
.planning-cell{background:#f8fafc}
.planning-cell.planning-open-cell{background:#edf9f1}
.planning-open-empty{display:inline-block;padding:6px 8px;border:1px dashed #9fd7b1;border-radius:9px;background:#e0f5e8;color:#31734d;font-weight:800;letter-spacing:.06em;font-size:.67rem}
.planning-class-group{display:grid;gap:3px;width:100%}
.planning-class-blocks{display:grid;gap:5px;grid-template-columns:minmax(0,1fr)}
.planning-parallel .planning-class-blocks{grid-template-columns:repeat(2,minmax(0,1fr))}
.planning-parallel-label{font-size:.62rem;line-height:1.2;font-weight:850;color:#2c567f;overflow-wrap:anywhere;padding:2px}
.planning-class{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:55px;padding:7px 4px;border-radius:10px;border-left:4px solid #5f9bdf;background:#d9ebff;font-weight:850;line-height:1.18}
.planning-class-name{overflow-wrap:anywhere}
.planning-class-duration{font-size:.64rem;line-height:1.25;font-weight:800;white-space:normal}
.planning-category-hyrox{background:#fbe0f1;border-color:#cb76ab}
.planning-category-strength{background:#def3c8;border-color:#76b34c}
.planning-category-gym{background:#fee2d6;border-color:#d5804a}
.planning-category-pilates{background:#ebdefa;border-color:#a381d5}
.planning-empty{color:#b3c2cf}
.planning-footnote{margin-top:14px;color:#53667b}
.planning-swipe-hint{display:none;color:#516780;font-size:.86rem;margin:0 0 8px}
@media(max-width:1180px){.planning-swipe-hint{display:block}}
@media(max-width:640px){
  .planning-week{font-size:.75rem;min-width:1100px}
  .planning-week th:first-child{width:86px}
  .planning-day-name{font-size:.83rem}
  .planning-open-time{font-size:.69rem}
  .planning-week tbody td{padding:4px}
  .planning-class{padding:6px 3px}
}