/* Saturday timetable — designed to echo the supplied Mastermind timetable while fitting the Resources Hub. */
.saturday-timetable-section{position:relative;overflow:hidden;padding:18px 0 72px;background:linear-gradient(180deg,#f7faff 0%,#fff 100%)}
.saturday-timetable-section:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 8% 12%,rgba(245,130,32,.10),transparent 24%),radial-gradient(circle at 92% 45%,rgba(8,43,92,.09),transparent 28%);pointer-events:none}
.sat-timetable-shell{position:relative;max-width:1120px;margin:auto;padding:34px;border:1px solid rgba(8,43,92,.12);border-radius:30px;background:rgba(255,255,255,.9);box-shadow:0 24px 70px rgba(8,43,92,.12);overflow:hidden}
.sat-timetable-orbit{position:absolute;border-radius:50%;filter:blur(1px);pointer-events:none}.sat-timetable-orbit--one{width:180px;height:180px;right:-70px;top:80px;background:rgba(245,130,32,.09)}.sat-timetable-orbit--two{width:130px;height:130px;left:-55px;bottom:180px;background:rgba(8,43,92,.07)}
.sat-timetable-head{display:grid;grid-template-columns:190px 1fr;gap:28px;align-items:center;position:relative;z-index:1;opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.sat-timetable-head.is-visible{opacity:1;transform:none}
.sat-timetable-brand{display:grid;place-items:center;padding:12px}.sat-timetable-brand img{width:min(100%,190px);height:auto;object-fit:contain}
.sat-timetable-title-wrap{text-align:left}.sat-timetable-kicker{display:inline-flex;align-items:center;gap:8px;color:#d56d0c;font-weight:900;letter-spacing:.05em;font-size:clamp(.85rem,2vw,1.05rem)}.sat-timetable-kicker:before,.sat-timetable-kicker:after{content:"";width:25px;height:2px;background:#f58220;border-radius:99px}
.sat-timetable-title-wrap h2{margin:5px 0 7px;color:#082b5c;font-size:clamp(2rem,5vw,3.65rem);line-height:.98;letter-spacing:-.045em}.sat-timetable-title-wrap p{margin:0;color:#4c5d73;font-weight:700}.sat-timetable-week{display:inline-flex;align-items:center;gap:7px;margin-top:12px;padding:7px 11px;border-radius:999px;background:#eef5fc;color:#164b7e;font-size:.76rem;font-weight:900}.sat-timetable-week i{width:7px;height:7px;border-radius:50%;background:#f58220;box-shadow:0 0 0 5px rgba(245,130,32,.12);animation:satPulse 1.8s infinite}
.sat-timetable-break{position:relative;z-index:1;margin:25px 0 20px;display:flex;align-items:center;justify-content:center;padding:13px 18px;border-radius:16px;background:linear-gradient(90deg,#f58220,#e76f0c);color:#fff;box-shadow:0 12px 24px rgba(245,130,32,.22);opacity:0;transform:translateY(15px);transition:opacity .65s ease .1s,transform .65s ease .1s}.sat-timetable-break.is-visible{opacity:1;transform:none}.sat-timetable-break strong{font-size:clamp(.82rem,2vw,1rem);letter-spacing:.01em;text-align:center}
.sat-timetable-sections{display:grid;gap:16px;position:relative;z-index:1}.sat-grade-card{position:relative;border:1px solid #d9e3ef;border-radius:20px;background:linear-gradient(135deg,#fff 0%,#f8fbff 100%);box-shadow:0 10px 28px rgba(8,43,92,.06);overflow:hidden;opacity:0;transform:translateY(20px);transition:opacity .65s ease var(--sat-delay),transform .65s ease var(--sat-delay),box-shadow .25s ease}.sat-grade-card.is-visible{opacity:1;transform:none}.sat-grade-card:hover{box-shadow:0 16px 34px rgba(8,43,92,.11)}
.sat-grade-tab{position:relative;display:flex;align-items:center;gap:12px;width:max-content;min-width:240px;margin-top:-1px;margin-left:0;padding:9px 26px 9px 16px;border-radius:0 0 18px 0;background:#082b5c;color:#fff;clip-path:polygon(0 0,100% 0,91% 100%,0 100%)}.sat-grade-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#f58220;color:#fff;font-size:.9rem;box-shadow:0 6px 14px rgba(245,130,32,.28)}.sat-grade-tab strong{font-size:1.15rem;letter-spacing:-.02em}.sat-grade-rows{padding:5px 18px 7px}.sat-class-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:18px;padding:13px 4px;border-bottom:1px solid #e4ebf2;opacity:0;transform:translateX(-8px);transition:opacity .5s ease var(--sat-delay),transform .5s ease var(--sat-delay)}.sat-grade-card.is-visible .sat-class-row{opacity:1;transform:none}.sat-class-row:last-child{border-bottom:0}.sat-class-main{display:flex;align-items:flex-start;gap:10px;min-width:0}.sat-dot{width:8px;height:8px;flex:0 0 auto;margin-top:7px;border-radius:50%;background:#f58220;box-shadow:0 0 0 5px rgba(245,130,32,.08)}.sat-class-main strong{display:block;color:#122c4d;font-size:.97rem}.sat-class-main span:not(.sat-dot){display:block;color:#66778c;margin-top:3px;font-size:.84rem}.sat-class-time{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;color:#c15e0b;font-weight:900;font-size:.86rem}.sat-class-time span{font-size:1rem}
.sat-timetable-footer{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:22px;border-radius:18px;overflow:hidden;background:#082b5c;box-shadow:0 16px 32px rgba(8,43,92,.15)}.sat-timetable-footer>div{display:flex;gap:10px;align-items:center;padding:17px 18px;background:#082b5c;color:#fff}.sat-footer-icon{width:39px;height:39px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:#f58220;font-size:1rem}.sat-timetable-footer small{display:block;color:#a9c1d9;font-weight:700;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}.sat-timetable-footer strong{display:block;margin-top:3px;font-size:.78rem;line-height:1.35;word-break:break-word}
.sat-timetable-note{display:flex;align-items:center;justify-content:center;gap:10px;margin:13px auto 0;width:fit-content;max-width:100%;padding:9px 16px;border-radius:999px;background:#fff1e3;color:#27384c;font-size:.78rem;font-weight:800;text-align:center}.sat-timetable-note span{color:#d86f13}.sat-timetable-note b{color:#e36e10;font-size:1rem}.sat-timetable-actions{display:flex;justify-content:center;margin-top:18px}.sat-download-btn{display:inline-flex;align-items:center;gap:9px;border:0;border-radius:999px;padding:13px 20px;background:#f58220;color:#fff;font:inherit;font-weight:900;cursor:pointer;box-shadow:0 12px 25px rgba(245,130,32,.23);transition:transform .2s ease,box-shadow .2s ease}.sat-download-btn:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(245,130,32,.3)}.sat-download-btn span{font-size:1.15rem}.sat-pdf-pending{font-size:.78rem;color:#7b8797;text-align:center}
@keyframes satPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.65}}
@media(max-width:820px){.sat-timetable-shell{padding:24px 16px;border-radius:22px}.sat-timetable-head{grid-template-columns:1fr;gap:12px}.sat-timetable-brand img{width:155px}.sat-timetable-title-wrap{text-align:center}.sat-timetable-kicker{justify-content:center}.sat-timetable-week{margin-top:10px}.sat-grade-tab{min-width:205px}.sat-timetable-footer{grid-template-columns:1fr}.sat-timetable-footer>div{padding:14px 16px}.sat-class-row{grid-template-columns:1fr;gap:7px}.sat-class-time{padding-left:18px}}
@media(max-width:520px){.saturday-timetable-section{padding-bottom:48px}.sat-timetable-shell{padding:18px 11px}.sat-timetable-title-wrap h2{font-size:2.15rem}.sat-timetable-title-wrap p{font-size:.82rem;line-height:1.5}.sat-timetable-break{margin:18px 0 14px;padding:11px 10px}.sat-timetable-break strong{font-size:.74rem;text-align:center}.sat-grade-card{border-radius:16px}.sat-grade-tab{min-width:180px;padding:8px 20px 8px 11px}.sat-grade-icon{width:30px;height:30px}.sat-grade-tab strong{font-size:1rem}.sat-grade-rows{padding:4px 11px}.sat-class-row{padding:12px 2px}.sat-class-main strong{font-size:.9rem}.sat-class-main span:not(.sat-dot){font-size:.78rem}.sat-class-time{font-size:.8rem}.sat-timetable-note{border-radius:14px;width:100%;line-height:1.4}.sat-download-btn{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){.sat-timetable-head,.sat-timetable-break,.sat-grade-card,.sat-class-row{transition:none;opacity:1;transform:none}.sat-timetable-week i{animation:none}}
.sat-timetable-actions{flex-direction:column;align-items:center;gap:8px}.sat-download-btn:disabled{opacity:.78;cursor:wait;transform:none}.sat-pdf-note{font-size:.72rem;color:#7b8797;text-align:center}.sat-download-spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;display:inline-block;animation:sat-spin .75s linear infinite}.sat-pdf-pending{display:none}@keyframes sat-spin{to{transform:rotate(360deg)}}
