/* AMA Speaking Platform - classes, teacher homework, feedback. Copyright (c) 2026 Soukaina (Teacher Souka). */
.sch { --s-navy: #0b1a3a; --s-blue: #1f3f9f; --s-deep: #002366; --s-line: #dbe3f0; --s-soft: #f4f7fc; --s-mute: #5b6a82; --s-red: #c0141c; --s-green: #11795a; --s-amber: #a15c00; color: var(--s-navy); font-family: var(--ui, system-ui, sans-serif); }
.sch * { box-sizing: border-box; }
.sch-student { max-width: 1100px; margin: 16px auto 8px; padding: 0 14px; }
.sch-teacher { max-width: 1100px; margin: 0 auto; padding: 18px 14px 120px; display: grid; gap: 14px; }
.sch-owner { display: grid; gap: 14px; }

.sch-card { background: #fff; border: 1px solid var(--s-line); border-radius: 20px; padding: 18px; box-shadow: 0 8px 24px rgba(0, 35, 102, 0.07); }
.sch h2, .sch h3, .sch h4 { color: var(--s-navy); margin: 0 0 6px; line-height: 1.25; }
.sch h2 { font-size: 1.5rem; }
.sch h3 { font-size: 1.2rem; }
.sch h3 small { font-weight: 500; color: var(--s-mute); font-size: 0.85rem; margin-left: 6px; }
.sch h4 { font-size: 1rem; }
.sch p { margin: 0 0 8px; line-height: 1.5; }
.sch-muted { color: var(--s-mute) !important; font-size: 0.93rem; }
.sch-eyebrow { text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.72rem; font-weight: 800; color: var(--s-blue) !important; margin: 0 0 2px !important; }
.sch-pre { white-space: pre-wrap; word-break: break-word; }
.sch-wait { color: var(--s-mute); padding: 10px 0; }
.sch-ok { color: var(--s-green) !important; font-weight: 700; }
.sch-warn { background: #fff8e6; color: #6b4b00 !important; padding: 10px 12px; border-radius: 12px; }
.sch-err { color: var(--s-red) !important; font-weight: 700; min-height: 1.2em; margin: 4px 0; }

/* buttons */
.sch-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 18px; border: 0; border-radius: 12px; background: linear-gradient(135deg, var(--s-deep), var(--s-blue)); color: #fff !important; font: 700 0.95rem var(--ui, system-ui); cursor: pointer; box-shadow: 0 6px 16px rgba(0, 35, 102, 0.2); text-decoration: none; }
.sch-btn:disabled { opacity: 0.55; cursor: default; }
.sch-btn--sm { min-height: 36px; padding: 0 12px; font-size: 0.86rem; border-radius: 10px; box-shadow: none; }
.sch-btn--big { min-height: 52px; width: 100%; font-size: 1.05rem; }
.sch-btn--ghost { background: #fff; color: var(--s-navy) !important; border: 1.5px solid var(--s-line); box-shadow: none; }
.sch-btn--warn { background: #fff4e0; color: var(--s-amber) !important; border: 1.5px solid #f1cf8c; box-shadow: none; }
.sch-btn--danger { background: #fff; color: var(--s-red) !important; border: 1.5px solid #f2c3c5; box-shadow: none; }
.sch-btn--rec { background: linear-gradient(135deg, #b3121a, #e0353c); }
.sch-btn--rec.is-rec { animation: sch-pulse 1.2s ease-in-out infinite; }
@keyframes sch-pulse { 50% { box-shadow: 0 0 0 8px rgba(224, 53, 60, 0.18); } }
.sch-link { border: 0; background: none; color: var(--s-blue) !important; font: 700 0.92rem var(--ui, system-ui); cursor: pointer; padding: 6px 0; text-decoration: underline; }
.sch-linkname { border: 0; background: none; padding: 0; color: var(--s-blue) !important; cursor: pointer; text-align: left; font: inherit; }
.sch-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.sch-inline { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }

/* chips */
.sch-chip { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px; font-size: 0.78rem; font-weight: 800; white-space: nowrap; background: #eef2fa; color: var(--s-navy) !important; }
.sch-chip--pending { background: #eef2fa; color: #23407f !important; }
.sch-chip--overdue { background: #fde8e9; color: var(--s-red) !important; }
.sch-chip--submitted { background: #e6f0ff; color: #1546a8 !important; }
.sch-chip--resubmit { background: #fff1d9; color: var(--s-amber) !important; }
.sch-chip--reviewed, .sch-chip--published { background: #e3f6ee; color: var(--s-green) !important; }
.sch-chip--draft { background: #f1f1f4; color: #4a4f5c !important; }
.sch-chip--archived { background: #f1f1f4; color: #6b7080 !important; }
.sch-tag { display: inline-block; font-size: 0.74rem; font-weight: 700; padding: 2px 8px; border-radius: 8px; background: #f3f0ff; color: #4b3a99 !important; }
.sch-tag--late { background: #fde8e9; color: var(--s-red) !important; }
.sch-counts { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.sch-count { font-size: 0.8rem; padding: 3px 9px; border-radius: 9px; background: var(--s-soft); color: var(--s-mute) !important; }
.sch-count b { color: var(--s-navy); }
.sch-count--overdue b { color: var(--s-red); }
.sch-count--resubmit b { color: var(--s-amber); }
.sch-count--reviewed b { color: var(--s-green); }

/* bell + notes */
.sch-bell { position: relative; width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid var(--s-line); background: #fff; color: var(--s-navy) !important; cursor: pointer; font-size: 1.05rem; flex: none; }
.sch-bell b { position: absolute; top: -4px; right: -4px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--s-red); color: #fff; font-size: 0.72rem; line-height: 20px; }
.sch-notebox { margin: 10px 0; }
.sch-notes { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; max-height: 320px; overflow: auto; }
.sch-notes li { display: grid; grid-template-columns: 22px 1fr auto; gap: 8px; align-items: start; padding: 9px 10px; border-radius: 12px; background: var(--s-soft); font-size: 0.92rem; }
.sch-notes li.is-new { background: #e9f0ff; font-weight: 700; }
.sch-notes i { color: var(--s-blue); margin-top: 3px; }
.sch-notes small { color: var(--s-mute); white-space: nowrap; }

/* fields */
.sch-field { display: grid; gap: 5px; margin: 0 0 12px; border: 0; padding: 0; min-width: 0; }
.sch-field > span, .sch-field legend { font-weight: 700; font-size: 0.93rem; color: var(--s-navy); padding: 0; margin-bottom: 4px; }
.sch-field small { font-weight: 400; color: var(--s-mute); }
.sch input:not([type=radio]):not([type=checkbox]), .sch select, .sch textarea, .ama-acc__form select { width: 100%; min-height: 44px; padding: 8px 12px; border-radius: 12px; border: 1.5px solid #cfdaeb; background: #fbfcff; font: 400 1rem var(--ui, system-ui); color: #0b1a3a; }
.sch textarea { min-height: 90px; resize: vertical; line-height: 1.5; }
.sch input:focus, .sch select:focus, .sch textarea:focus, .ama-acc__form select:focus { outline: none; border-color: var(--s-blue, #1f3f9f); box-shadow: 0 0 0 4px rgba(31, 63, 159, 0.12); background: #fff; }
.ama-acc__form select { min-height: 48px; font-size: 1.05rem; }
.sch-check { display: flex; align-items: center; gap: 8px; font-size: 0.95rem; padding: 4px 0; cursor: pointer; }
.sch-check input { width: 18px; height: 18px; accent-color: #1f3f9f; }
.sch-grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 14px; align-items: end; }
.sch-picks { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 2px 12px; padding: 8px 12px; border-radius: 12px; background: var(--s-soft); margin-top: 6px; }

/* sign-in account sheet extras */
.ama-acc__place { display: grid; gap: 12px; }
.ama-acc__placewait { margin: 0; padding: 10px 12px; border-radius: 12px; background: #eef2fa; color: #23407f; font-size: 0.93rem; }
.ama-acc__placewait--warn { background: #fff8e6; color: #6b4b00; }
.ama-acc__placeok { margin: 0; color: #11795a; font-weight: 700; font-size: 0.93rem; }
.ama-acc__recover { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; }

/* student panel */
.sch-signin { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; border-left: 5px solid var(--s-blue); }
.sch-signin h3 i { color: var(--s-blue); }
.sch-stu__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 8px; }
.sch-due { background: linear-gradient(135deg, #f4f7ff, #fff); border: 1px solid var(--s-line); border-radius: 16px; padding: 12px; margin: 8px 0 14px; }
.sch-due ul { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 6px; }
.sch-due button { width: 100%; display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; text-align: left; border: 1px solid var(--s-line); background: #fff; border-radius: 12px; padding: 10px 12px; cursor: pointer; font: inherit; color: var(--s-navy); }
.sch-due li.is-late button { border-color: #f2c3c5; background: #fff7f7; }
.sch-due span { color: var(--s-mute); font-size: 0.88rem; }
.sch-due li.is-late span { color: var(--s-red); font-weight: 700; }
.sch-hwlist { display: grid; gap: 10px; }
.sch-hw { border: 1px solid var(--s-line); border-radius: 16px; overflow: hidden; background: #fff; }
.sch-hw.is-open { border-color: #b9c8e6; box-shadow: 0 10px 26px rgba(0, 35, 102, 0.1); }
.sch-hw__top { width: 100%; display: flex; align-items: center; gap: 12px; padding: 14px; border: 0; background: none; cursor: pointer; text-align: left; font: inherit; color: var(--s-navy); }
.sch-hw__top > span:first-child { flex: 1; display: grid; gap: 2px; }
.sch-hw__top small { color: var(--s-mute); }
.sch-hw__top .fa-chevron-down { transition: transform 0.2s; color: var(--s-mute); }
.sch-hw.is-open .sch-hw__top .fa-chevron-down { transform: rotate(180deg); }
.sch-hw__body { padding: 0 14px 16px; border-top: 1px solid var(--s-line); padding-top: 12px; }
.sch-block { margin: 12px 0; }
.sch-block > summary, .sch-custom > summary { cursor: pointer; font-weight: 700; color: var(--s-blue); padding: 6px 0; }
.sch-answer { background: var(--s-soft); padding: 12px; border-radius: 12px; }
.sch-confirm { display: flex; gap: 12px; align-items: center; background: #e9f8f1; color: #0b5a43; border-radius: 14px; padding: 12px 14px; margin: 10px 0; }
.sch-confirm > i { font-size: 1.5rem; color: var(--s-green); }
.sch-confirm div { display: grid; }
.sch-confirm span { font-size: 0.9rem; }
.sch-fb { background: linear-gradient(135deg, #fffaf0, #fff); border: 1px solid #f0dcb0; border-radius: 16px; padding: 14px; margin: 12px 0; }
.sch-fb h4 i { color: #c9952a; }
.sch-fb--redo { background: #fff6e8; border-color: #f1cf8c; }
.sch-scores { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; margin: 8px 0; }
.sch-score { background: #fff; border: 1px solid var(--s-line); border-radius: 12px; padding: 8px 10px; display: grid; gap: 2px; }
.sch-score span { font-size: 0.78rem; color: var(--s-mute); font-weight: 700; }
.sch-score strong { font-size: 1.35rem; color: var(--s-deep); }
.sch-score--all { background: var(--s-deep); border-color: var(--s-deep); }
.sch-score--all span { color: #c9d6f5; }
.sch-score--all strong { color: #f7d77a; }
.sch-comment { white-space: pre-wrap; background: #fff; border-left: 4px solid #c9952a; padding: 10px 12px; border-radius: 0 12px 12px 0; margin: 6px 0 0 !important; }

/* exercises */
.sch-ex { padding: 12px; border: 1px solid var(--s-line); border-radius: 14px; margin: 8px 0; background: #fff; }
.sch-ex__q { font-weight: 600; }
.sch-ex__type { display: inline-block; font-size: 0.7rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; color: var(--s-blue); background: #eef2fa; border-radius: 6px; padding: 2px 6px; margin-right: 4px; vertical-align: middle; }
.sch-ex__bad { color: var(--s-red) !important; text-decoration: line-through; text-decoration-color: rgba(192, 20, 28, 0.4); }
.sch-opts { display: grid; gap: 6px; }
.sch-opt { display: flex; gap: 10px; align-items: center; padding: 9px 12px; border-radius: 12px; border: 1.5px solid var(--s-line); cursor: pointer; }
.sch-opt input { width: 18px; height: 18px; accent-color: #1f3f9f; flex: none; }
.sch-opt:has(input:checked) { border-color: var(--s-blue); background: #eef3ff; }
.sch-build__line { min-height: 50px; border: 2px dashed #b9c8e6; border-radius: 12px; padding: 6px; display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; background: var(--s-soft); }
.sch-build__bank { display: flex; flex-wrap: wrap; gap: 6px; }
.sch-word { min-height: 38px; padding: 0 12px; border-radius: 10px; border: 1.5px solid #cfdaeb; background: #fff; font: 600 0.98rem var(--ui, system-ui); color: var(--s-navy); cursor: pointer; }
.sch-word:disabled { opacity: 0.25; cursor: default; }
.sch-word--on { background: var(--s-deep); color: #fff; border-color: var(--s-deep); }
.sch-rec { display: grid; gap: 12px; padding: 14px; border-radius: 18px; background: linear-gradient(135deg, #f4f7ff, #fff); border: 1.5px solid var(--s-line); transition: border-color .2s, background .2s; }
.sch-rec.is-rec { border-color: #f2a5a9; background: linear-gradient(135deg, #fff3f3, #fff); }
.sch-rec.has-take:not(.is-rec) { border-color: #a9dcc6; }
.sch-rec__main { display: flex; align-items: center; gap: 14px; }
.sch-rec__btn { flex: 0 0 auto; width: 68px; height: 68px; border-radius: 50%; border: 0; cursor: pointer; display: grid; place-items: center; font-size: 1.6rem; color: #fff !important; background: linear-gradient(135deg, #b3121a, #e0353c); box-shadow: 0 8px 20px rgba(179,18,26,.32), inset 0 -3px 0 rgba(0,0,0,.15); transition: transform .15s; }
.sch-rec__btn i { color: #fff !important; -webkit-text-fill-color: #fff !important; }
.sch-rec__btn:active { transform: scale(.94); }
.sch-rec__btn.is-rec { animation: sch-recpulse 1.3s ease-out infinite; }
@keyframes sch-recpulse { 0% { box-shadow: 0 0 0 0 rgba(224,53,60,.55); } 100% { box-shadow: 0 0 0 18px rgba(224,53,60,0); } }
.sch-rec__info { display: grid; gap: 4px; min-width: 0; }
.sch-rec__info strong { font-size: 1rem; }
.sch-rec__info > span { display: flex; align-items: center; gap: 6px; color: var(--s-mute); }
.sch-rec__dot { width: 10px; height: 10px; border-radius: 50%; background: #c3cbda; }
.sch-rec.is-rec .sch-rec__dot { background: #e0353c; animation: sch-blink 1s steps(2) infinite; }
@keyframes sch-blink { 50% { opacity: .2; } }
.sch-rec__time { font: 800 1.15rem ui-monospace, monospace; color: var(--s-navy); min-width: 48px; }
.sch-rec__after { display: grid; gap: 8px; padding-top: 10px; border-top: 1px dashed var(--s-line); }
.sch-rec__after[hidden] { display: none; }
.sch-rec audio { width: 100%; height: 42px; }
.sch-rec__acts { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.sch-link--danger { color: var(--s-red) !important; }
.sch-rec__ok { margin: 0; color: var(--s-green); font-weight: 700; font-size: .92rem; }
.sch-howto { margin: 12px 0; border: 1.5px solid #c9d6f2; border-radius: 16px; background: #f5f8ff; overflow: hidden; }
.sch-howto summary { cursor: pointer; padding: 12px 14px; font-weight: 800; color: var(--s-blue); list-style: none; display: flex; align-items: center; gap: 8px; }
.sch-howto summary::-webkit-details-marker { display: none; }
.sch-howto summary::after { content: '\f078'; font-family: 'Font Awesome 6 Free'; font-weight: 900; margin-left: auto; font-size: .8rem; transition: transform .2s; }
.sch-howto[open] summary::after { transform: rotate(180deg); }
.sch-howto ol { margin: 0; padding: 0 16px 14px 34px; display: grid; gap: 7px; font-size: .94rem; line-height: 1.45; }
.sch-pending { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 10px 0; padding: 12px 14px; border-radius: 14px; background: #fff7e8; border: 1.5px solid #f1cf8c; color: #7a4a00; }
.sch-pending > i { font-size: 1.5rem; color: var(--s-amber); }
.sch-pending div { display: grid; flex: 1 1 220px; }
.sch-pending span { font-size: .9rem; }
.sch-btn--send { background: linear-gradient(135deg, #0b7a55, #13a06f); }
.sch-sent { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 20px; background: rgba(7, 20, 48, .55); animation: sch-fade .2s ease; }
.sch-sent.is-out { opacity: 0; transition: opacity .25s; }
.sch-sent__card { width: min(380px, 100%); background: #fff; border-radius: 24px; padding: 26px 22px 20px; text-align: center; box-shadow: 0 24px 60px rgba(0,0,0,.3); animation: sch-pop .35s cubic-bezier(.2,1.4,.4,1); }
.sch-sent__card h3 { margin: 14px 0 6px; font-size: 1.35rem; color: var(--s-navy); }
.sch-sent__card p { margin: 0 0 16px; color: var(--s-mute); }
.sch-sent__tick { display: inline-grid; place-items: center; width: 86px; height: 86px; border-radius: 50%; background: linear-gradient(135deg, #0b7a55, #19b97f); color: #fff; font-size: 2.6rem; box-shadow: 0 10px 26px rgba(17,121,90,.35); animation: sch-pop .45s .1s cubic-bezier(.2,1.6,.4,1) both; }
.sch-sent__tick i { color: #fff !important; -webkit-text-fill-color: #fff !important; }
@keyframes sch-pop { from { transform: scale(.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@keyframes sch-fade { from { opacity: 0; } }
.sch-submit { margin-top: 8px; }

/* teacher */
.sch-login { max-width: 440px; margin: 30px auto; text-align: center; }
.sch-login form { text-align: left; margin-top: 12px; }
.sch-crest { display: inline-grid; place-items: center; width: 62px; height: 62px; border-radius: 20px; background: linear-gradient(135deg, #001a4d, #1f3f9f); color: #f7d77a; font-size: 1.5rem; margin-bottom: 10px; }
.sch-login--pro { max-width: 460px; padding: 32px 26px 24px; text-align: left; border: 1px solid #c9d6ee; box-shadow: 0 22px 48px rgba(11, 26, 58, 0.14); background: linear-gradient(180deg, #fff, #f8fbff); }
.sch-login--pro h2 { margin: 0 0 8px; font-size: 1.62rem; letter-spacing: -0.03em; color: #0b1a3a; font-family: "Playfair Display", Georgia, serif; }
.sch-login__badge { width: 58px; height: 58px; border-radius: 18px; display: grid; place-items: center; margin-bottom: 14px; background: linear-gradient(145deg, #0b1a3a, #1f3f9f); color: #f7d77a; font-size: 1.35rem; box-shadow: 0 10px 22px rgba(15, 40, 100, 0.28); }
.sch-login__kicker { margin: 0 0 4px; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.72rem; font-weight: 800; color: #1f3f9f; }
.sch-login__lead { margin: 0 0 18px; color: #5b6a82; font-size: 0.95rem; line-height: 1.5; }
.sch-login__form { display: grid; gap: 12px; margin: 0; }
.sch-login__btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 52px; margin-top: 4px; padding: 0 18px; border: 0; border-radius: 14px; cursor: pointer; color: #241800; font: 800 1rem/1 var(--ui, system-ui); background: linear-gradient(145deg, #f7d77a 0%, #e8c04a 48%, #c9952a 100%); box-shadow: 0 0 0 1px rgba(255,255,255,.35), 0 10px 22px rgba(201, 149, 42, 0.28); }
.sch-login__btn:hover { filter: brightness(1.04); }
.sch-login__btn:disabled { opacity: 0.6; cursor: default; filter: none; }
.sch-login__btn i { font-size: 0.95rem; }
.sch-login__foot { margin: 14px 0 0; text-align: center; color: #7a879c; font-size: 0.82rem; }
.sch-login__back { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; margin-top: 14px; min-height: 42px; border: 0; background: transparent; color: #1f3f9f; font: 700 0.9rem var(--ui, system-ui); cursor: pointer; }
.sch-login__paths { display: grid; gap: 10px; margin-top: 4px; }
.sch-login__path { display: grid; grid-template-columns: 46px minmax(0, 1fr) 14px; align-items: center; gap: 12px; width: 100%; min-height: 72px; padding: 12px 14px; border-radius: 16px; border: 1.5px solid #d5e0f2; background: linear-gradient(180deg, #fff, #f7f9fd); cursor: pointer; text-align: left; font: inherit; color: inherit; box-shadow: 0 8px 18px rgba(11, 26, 58, 0.06); }
.sch-login__path:hover { border-color: #9eb6de; transform: translateY(-1px); }
.sch-login__path-ico { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; color: #fff; font-size: 1.1rem; }
.sch-login__path--owner .sch-login__path-ico { background: linear-gradient(145deg, #7c3aed, #5b21b6); }
.sch-login__path--teach .sch-login__path-ico { background: linear-gradient(145deg, #0f766e, #115e59); }
.sch-login__path-txt { display: grid; gap: 2px; }
.sch-login__path-txt strong { color: #0b1a3a; font-size: 1rem; }
.sch-login__path-txt small { color: #5b6a82; font-size: 0.84rem; line-height: 1.35; }
.sch-login__path > .fa-chevron-right { color: #94a3b8; }
.sch-thead { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; border-top: 5px solid var(--s-deep); }
.sch-thead__acts { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.sch-tabs { display: flex; gap: 6px; flex-wrap: wrap; background: #eef2fa; padding: 5px; border-radius: 14px; }
.sch-tabs button { flex: 1 1 auto; min-height: 42px; border: 0; background: transparent; border-radius: 10px; font: 700 0.93rem var(--ui, system-ui); color: var(--s-navy); cursor: pointer; padding: 0 12px; }
.sch-tabs button.is-on { background: #fff; box-shadow: 0 3px 10px rgba(0, 35, 102, 0.12); color: var(--s-deep); }
.sch-hwgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.sch-hwtile { display: grid; gap: 4px; text-align: left; border: 1px solid var(--s-line); border-radius: 16px; padding: 14px; background: #fff; cursor: pointer; font: inherit; color: var(--s-navy); transition: box-shadow 0.15s, border-color 0.15s; }
.sch-hwtile:hover { border-color: #b9c8e6; box-shadow: 0 8px 20px rgba(0, 35, 102, 0.1); }
.sch-hwtile__top { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.sch-hwtile small { color: var(--s-mute); }
.sch-class { margin-bottom: 16px; }
.sch-people { list-style: none; margin: 6px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 6px; }
.sch-people button { width: 100%; display: grid; grid-template-columns: 1fr auto; text-align: left; gap: 0 8px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--s-line); background: #fff; cursor: pointer; font: inherit; color: var(--s-navy); }
.sch-people small { color: var(--s-mute); grid-column: 1; }
.sch-people i { grid-row: 1 / span 2; grid-column: 2; align-self: center; color: var(--s-mute); }
.sch-subhead { margin: 8px 0; }
.sch-subhead p { color: var(--s-mute); }
.sch-auto { margin: 6px 0 0; padding-left: 22px; display: grid; gap: 6px; }
.sch-auto li { display: grid; gap: 2px; padding: 6px 8px; border-radius: 10px; }
.sch-auto li.is-ok { background: #effaf5; }
.sch-auto li.is-bad { background: #fff3f3; }
.sch-auto em { font-style: normal; font-weight: 700; }
.sch-auto li.is-ok em { color: var(--s-green); }
.sch-auto li.is-bad em { color: var(--s-red); }
.sch-auto small { color: var(--s-mute); }
.sch-hist { border-top: 1px solid var(--s-line); padding: 10px 0; }
.sch-review { background: var(--s-soft); border-radius: 16px; padding: 14px; }
.sch-crit { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 8px 0 12px; }
.sch-crit label { display: grid; gap: 4px; font-weight: 700; font-size: 0.88rem; }
.sch-exlist { margin: 6px 0 10px; padding-left: 22px; display: grid; gap: 6px; }
.sch-bank { margin-top: 8px; }
.sch-drills { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; max-height: 340px; overflow: auto; border: 1px solid var(--s-line); border-radius: 12px; padding: 8px; }
.sch-drills li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 8px; border-radius: 10px; background: var(--s-soft); font-size: 0.92rem; }
.sch-custom { margin-top: 12px; border: 1px solid var(--s-line); border-radius: 14px; padding: 6px 12px 12px; }

/* tables */
.sch-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 8px 0; }
.sch-table { width: 100%; border-collapse: collapse; font-size: 0.93rem; min-width: 560px; }
.sch-table th { text-align: left; font-size: 0.76rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--s-mute); padding: 8px; border-bottom: 2px solid var(--s-line); }
.sch-table td { padding: 10px 8px; border-bottom: 1px solid var(--s-line); vertical-align: middle; }
.sch-table td small { display: block; color: var(--s-mute); font-size: 0.8rem; }
.sch-table select { min-height: 36px; padding: 4px 8px; font-size: 0.88rem; max-width: 260px; }

/* owner */
.sch-ostats { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.sch-ostats span { background: #fff; border: 1px solid var(--s-line); border-radius: 12px; padding: 8px 12px; font-size: 0.9rem; color: var(--s-mute); }
.sch-ostats span b { color: var(--s-deep); font-size: 1.1rem; }
.sch-ostats span.is-warn { background: #fff8e6; border-color: #f1cf8c; }
.sch-ostats .sch-btn { margin-left: auto; }
.sch-filters { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: 8px; margin-bottom: 8px; }
.sch-oform { background: var(--s-soft); border-radius: 16px; padding: 14px; margin-bottom: 14px; }

.sch-ownerpage { max-width: 1180px; margin: 0 auto; padding: 18px 14px 120px; display: grid; gap: 14px; }
.sch-ohead { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px; border-top: 5px solid #c9952a; background: linear-gradient(135deg, #fff, #fffaf0); }
.sch-ohead__id { display: flex; gap: 14px; align-items: center; }
.sch-ohead__id .sch-crest { margin: 0; }
.sch-as { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; font-weight: 700; font-size: 0.9rem; }
.sch-as select { width: auto !important; min-height: 38px !important; }
.sch-ownerlink { text-align: center; margin-top: 10px !important; }

/* toast */
.sch-toast { position: fixed; left: 50%; bottom: 90px; transform: translateX(-50%); z-index: 3000; background: #0b5a43; color: #fff !important; padding: 12px 18px; border-radius: 14px; font: 700 0.95rem var(--ui, system-ui); box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25); transition: opacity 0.4s, transform 0.4s; max-width: calc(100vw - 32px); }
.sch-toast--bad { background: #9b1117; }
.sch-toast.is-out { opacity: 0; transform: translate(-50%, 10px); }

@media (max-width: 700px) {
 .sch-card { padding: 14px; border-radius: 16px; }
 .sch-filters { grid-template-columns: 1fr 1fr; }
 .sch-filters input { grid-column: 1 / -1; }
 .sch-actions .sch-btn { flex: 1 1 auto; }
 .sch-teacher { padding-top: 10px; }
}

/* ── courses, library, tick / cross, notifications ── */
.sch-course { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 999px; font-size: 0.8rem; font-weight: 800; color: #fff !important; background: var(--cc, #0a3a9e); box-shadow: 0 3px 10px color-mix(in srgb, var(--cc, #0a3a9e) 30%, transparent); white-space: nowrap; }
.sch-course i { font-size: 0.78rem; }
.sch-thead__courses { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 4px; }
.sch-aspick { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; }
.sch-aspick__lab { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--s-mute); }
.sch-aspick select { min-width: min(100%, 240px); padding: 8px 12px; border: 1px solid var(--s-line); border-radius: 10px; background: #fff; font: inherit; font-weight: 600; color: var(--s-navy); }
.sch-guestnote { margin: 0 0 12px; padding: 10px 12px; border-radius: 12px; background: #eff6ff; color: #1e3a8a !important; font-weight: 600; font-size: 0.9rem; display: flex; gap: 8px; align-items: flex-start; }
.sch-tcorners { width: 100%; margin: 12px 0 4px; }
.sch-tcorners__lab { margin: 0 0 8px; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--s-mute); }
.sch-tcorners__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(148px, 1fr)); gap: 10px; }
.sch-tcorner { --tc: #2563eb; display: flex; align-items: center; gap: 10px; min-height: 58px; padding: 10px 12px; border: 2px solid color-mix(in srgb, var(--tc) 35%, #fff); border-radius: 16px; background: linear-gradient(145deg, color-mix(in srgb, var(--tc) 14%, #fff), #fff); color: var(--s-navy); font: inherit; cursor: pointer; text-align: left; box-shadow: 0 6px 16px color-mix(in srgb, var(--tc) 18%, transparent); transition: transform 0.15s ease, box-shadow 0.15s ease; }
.sch-tcorner:hover { transform: translateY(-2px); box-shadow: 0 10px 22px color-mix(in srgb, var(--tc) 28%, transparent); }
.sch-tcorner.is-on { border-color: var(--tc); background: linear-gradient(145deg, color-mix(in srgb, var(--tc) 28%, #fff), #fff); box-shadow: 0 0 0 3px color-mix(in srgb, var(--tc) 25%, transparent); }
.sch-tcorner__ava { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; flex: 0 0 auto; background: var(--tc); color: #fff; font-size: 0.78rem; font-weight: 800; }
.sch-tcorner__name { flex: 1; font-weight: 800; font-size: 0.95rem; line-height: 1.2; color: var(--s-navy); }
.sch-tcorner__go { color: var(--tc); opacity: 0.85; }
.sch-tcard { border-color: color-mix(in srgb, var(--tc, var(--s-line)) 28%, var(--s-line)); }
.sch-tcard__open { color: #fff !important; box-shadow: none; }
.sch-stu__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 6px; }
.sch-stu__teacher { font-weight: 700; color: var(--s-mute); font-size: 0.88rem; }
.sch-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 12px; }
.sch-chipbtn { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1.5px solid color-mix(in srgb, var(--cc) 35%, #fff); background: #fff; color: var(--cc) !important; font: 800 0.88rem var(--ui, system-ui); cursor: pointer; transition: background 0.15s, color 0.15s, transform 0.15s; }
.sch-chipbtn b { font-size: 0.74rem; padding: 1px 7px; border-radius: 999px; background: color-mix(in srgb, var(--cc) 14%, #fff); }
.sch-chipbtn:hover { transform: translateY(-1px); }
.sch-chipbtn.is-on { background: var(--cc); color: #fff !important; border-color: var(--cc); box-shadow: 0 6px 16px color-mix(in srgb, var(--cc) 35%, transparent); }
.sch-chipbtn.is-on b { background: rgba(255, 255, 255, 0.25); }
.sch-chips--kinds .sch-chipbtn { min-height: 36px; font-size: 0.84rem; }
.sch-group { margin-bottom: 18px; }
.sch-group__h { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; font-size: 1rem; }
.sch-group__h small { color: var(--s-mute); font-weight: 600; }
.sch-hwtile { border-top: 4px solid var(--cc, var(--s-line)); }
.sch-hwtile__tally { display: flex; align-items: center; gap: 10px; margin-top: 6px; font-weight: 800; font-size: 0.86rem; }
.sch-hwtile__tally .is-ok { color: var(--s-green); }
.sch-hwtile__tally .is-no { color: var(--s-red); }
.sch-hwtile__bar, .sch-tally__bar { flex: 1; height: 7px; border-radius: 99px; background: #fde8e9; overflow: hidden; }
.sch-hwtile__bar i, .sch-tally__bar i { display: block; height: 100%; background: linear-gradient(90deg, #11795a, #2bb07f); border-radius: 99px; }
.sch-tally { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 12px 14px; margin: 10px 0; border-radius: 14px; background: var(--s-soft); font-weight: 800; }
.sch-tally__ok { color: var(--s-green); }
.sch-tally__no { color: var(--s-red); }
.sch-tally b { font-size: 1.2rem; }
.sch-tally__bar { min-width: 140px; height: 10px; }
.sch-tick-h { width: 58px; text-align: center !important; }
.sch-tick { text-align: center; }
.sch-tick i { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; font-size: 1rem; }
.sch-table--hw tr.is-in .sch-tick i { background: #e3f6ee; color: var(--s-green); }
.sch-table--hw tr.is-out .sch-tick i { background: #fde8e9; color: var(--s-red); }
.sch-table--hw tr.is-out td strong { color: #6b5560; }
.sch-class { border-left: 4px solid var(--cc, var(--s-line)); padding-left: 12px; }
.sch-class h3 { display: flex; align-items: center; gap: 10px; }
.sch-people button { grid-template-columns: auto 1fr auto; align-items: center; }
.sch-people button strong { grid-column: 2; }
.sch-people button small { grid-column: 2; }
.sch-ava { grid-row: 1 / span 2; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 0.82rem; color: #fff !important; background: var(--cc, var(--s-blue)); }
.sch-people button i { grid-column: 3; }
.sch-emptybig { text-align: center; padding: 26px 12px; }
.sch-emptybig > i { font-size: 2.4rem; color: var(--s-blue); }
.sch-emptybig h3 { margin: 10px 0 4px; }
.sch-emptybig .sch-actions { justify-content: center; }
.sch-empty { padding: 14px; border-radius: 14px; background: var(--s-soft); color: var(--s-mute); }

.sch-libhead { padding: 16px 18px; border-radius: 16px; margin-bottom: 12px; color: #fff; background: linear-gradient(135deg, var(--cc), color-mix(in srgb, var(--cc) 60%, #001a4d)); }
.sch-libhead h3 { margin: 2px 0; color: #fff !important; font-size: 1.3rem; }
.sch-libhead h3 small { font-size: 0.85rem; opacity: 0.85; font-weight: 600; }
.sch-libhead .sch-eyebrow, .sch-libhead .sch-muted { color: rgba(255, 255, 255, 0.88) !important; }
.sch-libgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 12px; }
.sch-lib { display: flex; flex-direction: column; gap: 4px; padding: 14px; border-radius: 16px; border: 1px solid var(--s-line); border-top: 4px solid var(--kc); background: #fff; transition: box-shadow 0.15s; }
.sch-lib:hover { box-shadow: 0 10px 24px rgba(0, 35, 102, 0.1); }
.sch-lib.is-open { grid-column: 1 / -1; }
.sch-lib__top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.sch-lib__kind { display: inline-flex; align-items: center; gap: 6px; font-size: 0.76rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; color: var(--kc) !important; }
.sch-lib strong { font-size: 1rem; line-height: 1.3; }
.sch-lib small { color: var(--s-mute); }
.sch-lib__what { font-size: 0.82rem; color: #3b4a66; margin: 4px 0 0; }
.sch-lib__more { margin-top: 8px; padding: 12px; border-radius: 12px; background: var(--s-soft); }
.sch-lib__acts { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: 10px; }
.sch-fromlib { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px; margin: 8px 0 14px; background: #e3f6ee; color: #0b4d38; }
.sch-fromlib > i { font-size: 1.4rem; }
.sch-fromlib div { flex: 1; display: grid; }
.sch-fromlib span { font-size: 0.86rem; }
.sch-fromlib--ask { background: #eef2ff; color: #1f2f7a; }

.sch-alert { display: flex; gap: 14px; padding: 16px; margin: 12px 0; border-radius: 18px; color: #fff; background: linear-gradient(135deg, #c8102e, #e8573a 60%, #f39c34); box-shadow: 0 12px 28px rgba(200, 16, 46, 0.28); }
.sch-alert__icon { flex: 0 0 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; font-size: 1.3rem; background: rgba(255, 255, 255, 0.22); animation: sch-ring 2.4s ease-in-out 2; }
.sch-alert__body { flex: 1; min-width: 0; }
.sch-alert strong { display: block; font-size: 1.05rem; color: #fff !important; }
.sch-alert ul { list-style: none; margin: 8px 0 6px; padding: 0; display: grid; gap: 6px; }
.sch-alert li { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; background: rgba(255, 255, 255, 0.16); font-size: 0.9rem; }
.sch-alert li span { flex: 1; }
.sch-alert__go { border: 0; border-radius: 10px; padding: 6px 12px; font: 800 0.82rem var(--ui, system-ui); background: #fff; color: #c8102e !important; cursor: pointer; }
.sch-alert .sch-link { color: #fff !important; text-decoration: underline; }
@keyframes sch-ring { 0%, 100% { transform: rotate(0); } 10%, 30% { transform: rotate(-14deg); } 20%, 40% { transform: rotate(14deg); } 50% { transform: rotate(0); } }
.sch-sec .sch-form { padding: 16px; border: 1px solid var(--s-line); border-radius: 16px; }

/* home card + badges (outside .sch) */
.ama-hw-alert { margin: 0 0 14px; }
.ama-hw-alert__inner { width: 100%; display: flex; align-items: center; gap: 14px; text-align: left; padding: 14px 16px; border: 0; border-radius: 18px; cursor: pointer; color: #fff; font: inherit; background: linear-gradient(135deg, #c8102e, #e8573a 60%, #f39c34); box-shadow: 0 12px 28px rgba(200, 16, 46, 0.3); }
.ama-hw-alert__bell { position: relative; flex: 0 0 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; font-size: 1.25rem; background: rgba(255, 255, 255, 0.22); animation: sch-ring 2.4s ease-in-out 2; }
.ama-hw-alert__bell b { position: absolute; top: -4px; right: -4px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 99px; background: #fff; color: #c8102e; font-size: 0.72rem; display: grid; place-items: center; }
.ama-hw-alert__text { flex: 1; min-width: 0; display: grid; gap: 2px; }
.ama-hw-alert__text small { opacity: 0.9; font-weight: 700; font-size: 0.78rem; color: #fff !important; }
.ama-hw-alert__text strong { font-size: 1.02rem; color: #fff !important; }
.ama-hw-alert__text span { font-size: 0.86rem; opacity: 0.95; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #fff !important; }
.ama-hw-alert__go { flex: 0 0 auto; padding: 8px 12px; border-radius: 12px; background: #fff; color: #c8102e !important; font-weight: 800; font-size: 0.84rem; }
[data-view="homework"] { position: relative; }
.ama-hw-badge { position: absolute; top: 2px; right: 8px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px; background: #e0242c; color: #fff !important; font: 800 0.68rem/18px var(--ui, system-ui); text-align: center; box-shadow: 0 0 0 2px #fff; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .sch-alert__icon, .ama-hw-alert__bell { animation: none; } }
@media (max-width: 560px) {
 .sch-libgrid { grid-template-columns: 1fr; }
 .ama-hw-alert__go { display: none; }
 .sch-tally__bar { min-width: 100%; }
}

/* sign-up: teacher -> course cards */
.ama-pick { display: grid; gap: 6px; margin-bottom: 10px; }
.ama-pick.is-off { opacity: 0.5; }
.ama-pick__label { font-weight: 800; font-size: 0.86rem; color: #0b1a3a; }
.ama-pick__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: 8px; }
.ama-pick__row--course { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ama-pick__card { display: grid; justify-items: center; gap: 4px; padding: 12px 8px; border-radius: 14px; border: 2px solid #dbe3f0; background: #fff; color: #0b1a3a !important; font: inherit; cursor: pointer; text-align: center; transition: border-color 0.15s, background 0.15s, transform 0.15s; }
.ama-pick__card i { font-size: 1.2rem; color: #1f3f9f; }
.ama-pick__card strong { font-size: 0.95rem; }
.ama-pick__card small { font-size: 0.74rem; color: #5b6a82; }
.ama-pick__card:hover:not(:disabled) { transform: translateY(-1px); border-color: #9fb3dc; }
.ama-pick__card.is-on { border-color: #0a5bd8; background: #eaf2ff; box-shadow: 0 6px 16px rgba(10, 91, 216, 0.18); }
.ama-pick__card:disabled { cursor: default; }

/* ── Owner Area: News control centre ── */
.sch-tabn { display: inline-block; min-width: 20px; padding: 1px 6px; margin-left: 4px; border-radius: 999px; background: #dc2626; color: #fff !important; font-size: 0.72rem; line-height: 1.4; }
.sch-news__health { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: 18px; margin-bottom: 12px; }
.sch-news__health > i { font-size: 1.8rem; }
.sch-news__health strong { display: block; font-size: 1.1rem; color: var(--s-navy); }
.sch-news__health small { color: #475569; }
.sch-news__health.is-ok { background: linear-gradient(135deg, #ecfdf5, #d1fae5); border: 1px solid #a7f3d0; }
.sch-news__health.is-ok > i { color: #059669; }
.sch-news__health.is-warn { background: linear-gradient(135deg, #fffbeb, #fef3c7); border: 1px solid #fde68a; }
.sch-news__health.is-warn > i { color: #d97706; }
.sch-news__alerts { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 8px; }
.sch-news__alerts li { display: flex; align-items: center; gap: 12px; padding: 10px 12px 10px 14px; border-radius: 14px; background: #fff; border: 1px solid var(--s-line); border-left: 5px solid #f59e0b; }
.sch-news__alerts li.is-bad { border-left-color: #dc2626; }
.sch-news__alerts li > i { color: #d97706; width: 20px; text-align: center; }
.sch-news__alerts li.is-bad > i { color: #dc2626; }
.sch-news__alerts li span { flex: 1; font-weight: 700; color: var(--s-navy); }
.sch-news__h { display: flex; align-items: center; gap: 8px; font-size: 1.05rem !important; margin: 18px 0 10px !important; }
.sch-news__h i { color: #b8913a; }
.sch-news__bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.sch-news__teachers { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; }
.sch-tcard { border: 1px solid var(--s-line); border-radius: 18px; padding: 14px; background: linear-gradient(180deg, #fff, #f8faff); display: grid; gap: 10px; }
.sch-tcard header { display: flex; align-items: center; gap: 10px; }
.sch-tcard header strong { display: block; color: var(--s-navy); font-size: 1.02rem; }
.sch-tcard header small { color: #64748b; }
.sch-tcard dl { margin: 0; display: grid; gap: 8px; }
.sch-tcard dl > div { display: grid; grid-template-columns: 1fr auto; gap: 3px 8px; align-items: center; }
.sch-tcard dt { font-size: 0.84rem; color: #475569; font-weight: 700; }
.sch-tcard dd { margin: 0; font-weight: 800; color: var(--s-navy); }
.sch-meter { grid-column: 1 / -1; height: 7px; border-radius: 999px; background: #e2e8f0; overflow: hidden; }
.sch-meter i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #2563eb, #60a5fa); }
.sch-meter--teal i { background: linear-gradient(90deg, #0d9488, #2dd4bf); }
.sch-tcard__nums { display: flex; flex-wrap: wrap; gap: 6px 12px; margin: 0; font-size: 0.84rem; font-weight: 700; }
.sch-tcard__nums .is-ok { color: #0d9488; }
.sch-tcard__nums .is-wait { color: #d97706; }
.sch-tcard__nums .is-no { color: #dc2626; }
.sch-news__cols { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 18px; }
@media (max-width: 820px) { .sch-news__cols { grid-template-columns: 1fr; } }
.sch-feed, .sch-reports { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 6px; max-height: 560px; overflow: auto; }
.sch-feed li { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 12px; background: #fff; border: 1px solid var(--s-line); }
.sch-feed li > i { width: 30px; height: 30px; flex: none; border-radius: 50%; display: grid; place-items: center; font-size: 0.8rem; color: #fff !important; background: var(--fc); }
.sch-feed li.is-new { background: color-mix(in srgb, var(--fc) 7%, #fff); border-color: color-mix(in srgb, var(--fc) 30%, #fff); }
.sch-feed p, .sch-reports p { margin: 0; color: var(--s-navy); font-weight: 600; line-height: 1.35; }
.sch-feed small, .sch-reports small { color: #64748b; font-size: 0.78rem; }
.sch-reports li { display: flex; gap: 10px; align-items: flex-start; justify-content: space-between; padding: 10px 12px; border-radius: 12px; background: #fff; border: 1px solid var(--s-line); border-left: 4px solid #2563eb; }
.sch-reports li.is-error { border-left-color: #dc2626; }
.sch-reports li.is-problem { border-left-color: #d97706; }
.sch-reports li.is-done { opacity: 0.55; }
.sch-reports li > div { min-width: 0; overflow-wrap: anywhere; }
.sch-rkind { display: inline-block; font-size: 0.7rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; color: #64748b; }
.sch-reports li.is-error .sch-rkind { color: #dc2626; }

/* ── Owner Area: one class per teacher ── */
.sch-oclasses { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; margin-top: 12px; }
.sch-oclass { border: 1px solid var(--s-line); border-radius: 18px; padding: 14px; background: #fff; }
.sch-oclass header { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.sch-oclass header h4 { margin: 0 !important; }
.sch-oclass header small { color: #64748b; }
.sch-oclass ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.sch-oclass li { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 8px 10px; border-radius: 12px; background: #f8faff; }
.sch-oclass li > span { flex: 1; font-size: 0.85rem; color: #475569; font-weight: 700; }

/* ── Teacher area: My account ── */
.sch-acct { display: grid; gap: 14px; max-width: 720px; }
.sch-acct__id { display: flex; align-items: center; gap: 14px; }
.sch-acct__id h3 { margin: 0 !important; }
.sch-ava--lg { width: 56px; height: 56px; font-size: 1.1rem; background: linear-gradient(135deg, #0a3a9e, #2563eb); }
.sch-field--confirm { margin-top: 6px; padding-top: 12px; border-top: 1px dashed var(--s-line); }
/* ── Ratings: Excellent / Good / Fair / Needs improvement ── */
.sch-rate { display: inline-block; justify-self: start; padding: 4px 10px; border-radius: 999px; font-weight: 800; font-size: 0.86rem; }
.sch-rate--ex { background: #dcfce7; color: #166534 !important; }
.sch-rate--good { background: #dbeafe; color: #1e40af !important; }
.sch-rate--fair { background: #fef3c7; color: #92400e !important; }
.sch-rate--ni { background: #fee2e2; color: #991b1b !important; }
.sch-rate--band { background: #eef2fa; color: var(--s-deep) !important; }
.sch-rate--none { color: var(--s-mute) !important; }
.sch-score--all .sch-rate { font-size: 1rem; }
.sch-ratefield { border: 1px solid var(--s-line); border-radius: 14px; padding: 10px 12px 12px; margin: 0; min-width: 0; background: #fff; }
.sch-ratefield legend { padding: 0 6px; font-weight: 800; font-size: 0.9rem; color: var(--s-navy); }
.sch-ratefield--all { margin: 4px 0 12px; border: 2px solid #d6b36a; background: linear-gradient(180deg, #fffbeb, #fff); }
.sch-ratepick { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.sch-ratefield--all .sch-ratepick { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 560px) { .sch-ratefield--all .sch-ratepick { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sch-ratepick__opt { position: relative; cursor: pointer; }
.sch-ratepick__opt input { position: absolute; opacity: 0; pointer-events: none; }
.sch-ratepick__opt span { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 40px; padding: 4px 8px; border-radius: 10px; border: 1.5px solid var(--s-line); font-weight: 700; font-size: 0.84rem; color: var(--s-navy); background: #fff; transition: background 0.15s, border-color 0.15s; }
.sch-ratepick__opt input:focus-visible + span { outline: 3px solid #93c5fd; outline-offset: 1px; }
.sch-ratepick__opt--ex input:checked + span { background: #16a34a; border-color: #16a34a; color: #fff !important; }
.sch-ratepick__opt--good input:checked + span { background: #2563eb; border-color: #2563eb; color: #fff !important; }
.sch-ratepick__opt--fair input:checked + span { background: #d97706; border-color: #d97706; color: #fff !important; }
.sch-ratepick__opt--ni input:checked + span { background: #dc2626; border-color: #dc2626; color: #fff !important; }
.sch-crit { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important; }
/* Student area */
.sch-studentarea { max-width: 760px; margin: 0 auto; padding: 18px 14px 120px; display: grid; gap: 14px; }
.sch-sa__hero { background: linear-gradient(135deg, #002366, #1f3f9f); color: #fff; border-radius: 20px; padding: 20px 18px; box-shadow: 0 10px 26px rgba(0,35,102,.22); }
.sch-sa__hero h2, .sch-sa__hero p, .sch-sa__hero i { color: #fff !important; -webkit-text-fill-color: #fff !important; margin: 4px 0; }
.sch-sa__hero h2 { font-size: 1.45rem; }
.sch-sa__hero .sch-eyebrow { color: #ecd089 !important; -webkit-text-fill-color: #ecd089 !important; }
.sch-sa__find { display: grid; gap: 14px; }
.sch-sa__preview { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; border: 2px solid #d6b36a; background: linear-gradient(180deg, #fff8e6, #fff); }
.sch-sa__preview p { margin: 0; flex: 1 1 220px; }
.sch-sa__preview strong { display: block; color: #0b1f4d; font-size: 1.05rem; }
.sch-sa__preview span { color: #5a6886; font-weight: 600; }
.sch-sa__previewbtns { display: flex; flex-wrap: wrap; gap: 8px; }
.sch-hub__deskswitch { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.sch-hub__deskbtn { appearance: none; border: 2px solid #0b1f4d; background: #fff; color: #0b1f4d; font: 800 .82rem/1.2 system-ui, sans-serif; padding: 8px 12px; border-radius: 999px; cursor: pointer; }
.sch-hub__deskbtn.is-on { background: #0b1f4d; color: #fff8e6; }
.sch-sa__teachers { border: 0; margin: 0; padding: 0; }
.sch-sa__teachers legend { font-weight: 800; margin-bottom: 8px; }
.sch-sa__tlist { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; }
.sch-sa__t input { position: absolute; opacity: 0; pointer-events: none; }
.sch-sa__t span { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 10px; border: 2px solid var(--s-line); border-radius: 14px; background: #fff; font-weight: 800; cursor: pointer; transition: border-color .15s, background .15s; }
.sch-sa__t input:checked + span { border-color: #d6b36a; background: linear-gradient(180deg, #fff8e6, #fdf0cf); box-shadow: 0 4px 12px rgba(214,179,106,.3); }
.sch-sa__t input:focus-visible + span { outline: 3px solid #1f3f9f; outline-offset: 2px; }
.sch-sa__err { margin: 0; padding: 10px 12px; border-radius: 12px; background: #fff4f4; border: 1px solid #f2c3c5; color: var(--s-red); font-weight: 700; }
.sch-sa__err--info { background: #f2f6ff; border-color: #c9d6f2; color: var(--s-blue); }
.sch-sa__result header { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.sch-sa__result h3 { margin: 2px 0 6px; font-size: 1.3rem; }
.sch-sa__sum { margin: 12px 0 8px; color: var(--s-mute); }
.sch-sa__sum strong { color: var(--s-red); font-size: 1.1rem; }
.sch-sa__hw { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 8px; }
.sch-sa__hw li { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; padding: 12px; border: 1px solid var(--s-line); border-radius: 14px; background: #fff; }
.sch-sa__hw li.is-late { border-color: #f2c3c5; background: #fff7f7; }
.sch-sa__hw span { display: grid; gap: 2px; }
.sch-sa__hw small { color: var(--s-mute); }
.sch-sa__login { display: grid; gap: 12px; }
.sch-sa__login h3 { margin: 0; font-size: 1.05rem; }
.sch-sa__who { display: flex; align-items: center; gap: 8px; padding: 12px 14px; }
.sch-sa__who i { color: var(--s-green); }
.sch-sa__foot { text-align: center; color: var(--s-mute); margin: 4px 0 0; }
.sch-studentarea #sch-student { padding: 0; }

/* teacher header tiles + class list */
.sch-thead { position: relative; overflow: hidden; background: linear-gradient(135deg, #fff 55%, #f1f5ff); }
.sch-thead::after { content: ""; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgba(31, 63, 159, 0.09), transparent 70%); pointer-events: none; }
.sch-thead__main { min-width: 0; }
.sch-thead__hello { display: block; font-size: 0.95rem; font-weight: 600; color: var(--s-mute); }
.sch-tstats { flex: 1 1 100%; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; position: relative; z-index: 1; }
.sch-tstat { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; gap: 0 10px; align-items: center; text-align: left; padding: 12px 14px; border-radius: 16px; border: 1px solid var(--s-line); background: #fff; font: inherit; color: var(--s-navy); cursor: pointer; transition: transform 0.15s, box-shadow 0.15s; }
.sch-tstat:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(0, 35, 102, 0.1); }
.sch-tstat i { grid-row: 1 / span 2; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: #eaf0ff; color: var(--s-blue); font-size: 1.05rem; }
.sch-tstat b { font-size: 1.45rem; line-height: 1.1; color: var(--s-deep); }
.sch-tstat span { font-size: 0.8rem; color: var(--s-mute); font-weight: 600; line-height: 1.25; }
.sch-tstat--warn { background: #fffaf0; border-color: #f3d79b; }
.sch-tstat--warn i { background: #ffefc9; color: #a15c00; }
.sch-tstat--warn b { color: #8a4f00; }
.sch-tstat--bad { background: #fff6f6; border-color: #f2c3c5; }
.sch-tstat--bad i { background: #ffe1e2; color: var(--s-red); }
.sch-tstat--bad b { color: var(--s-red); }
.sch-tstat--ok i { background: #dff5ec; color: var(--s-green); }
.sch-rosterhead { margin-bottom: 10px; }
.sch-chips--status .sch-chipbtn { --cc: #33415c; min-height: 36px; font-size: 0.84rem; }
.sch-chips--status .sch-chipbtn:disabled { opacity: 0.5; cursor: default; transform: none; }
.sch-roster { margin-top: 18px; }
.sch-roster__list { list-style: none; margin: 8px 0 0; padding: 0; border: 1px solid var(--s-line); border-radius: 16px; overflow: hidden; background: #fff; }
.sch-roster__list li + li { border-top: 1px solid #edf1f8; }
.sch-roster__list button { width: 100%; display: grid; grid-template-columns: 28px 38px minmax(150px, 1.4fr) minmax(110px, 1fr) minmax(120px, 1.3fr) 82px 14px; gap: 10px; align-items: center; text-align: left; padding: 10px 14px; border: 0; background: transparent; cursor: pointer; font: inherit; color: var(--s-navy); }
.sch-roster__list button:hover { background: #f6f9ff; }
.sch-roster__list .sch-ava { grid-row: auto; }
.sch-roster__n { font-size: 0.8rem; font-weight: 700; color: #94a3b8; text-align: right; }
.sch-roster__who { display: grid; min-width: 0; }
.sch-roster__who strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sch-roster__who small { color: var(--s-mute); font-size: 0.78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sch-roster__prog { display: grid; gap: 4px; }
.sch-roster__prog small { font-size: 0.76rem; color: var(--s-mute); font-weight: 600; }
.sch-roster__bar { height: 7px; border-radius: 99px; background: #e8edf6; overflow: hidden; }
.sch-roster__bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--cc, #1f3f9f), color-mix(in srgb, var(--cc, #1f3f9f) 60%, #22c55e)); }
.sch-roster__tags { display: flex; flex-wrap: wrap; gap: 4px; }
.sch-roster__last { font-size: 0.74rem; color: var(--s-mute); line-height: 1.3; text-align: right; }
.sch-roster__list button > i { color: #a3b1c6; }
.sch-rtag { display: inline-flex; align-items: center; gap: 4px; font-size: 0.72rem; font-weight: 700; padding: 3px 8px; border-radius: 99px; background: #eef2f8; color: var(--s-mute); white-space: nowrap; }
.sch-rtag--review { background: #fff1d6; color: #8a4f00; }
.sch-rtag--redo { background: #ede7ff; color: #5b3cc4; }
.sch-rtag--late { background: #ffe4e5; color: var(--s-red); }
.sch-rtag--audio { background: #e4efff; color: var(--s-blue); }
.sch-rtag--ok { background: #dcf5ea; color: var(--s-green); }
.sch-rtag--wait { background: transparent; }
@media (max-width: 820px) {
 .sch-tstats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .sch-roster__list button { grid-template-columns: 22px 34px minmax(90px, 120px) minmax(0, 1fr) 14px; grid-template-areas: "n a who who go" "n a prog tags go"; gap: 4px 10px; padding: 10px 12px; }
 .sch-roster__n { grid-area: n; }
 .sch-roster__list .sch-ava { grid-area: a; width: 34px; height: 34px; }
 .sch-roster__who { grid-area: who; }
 .sch-roster__prog { grid-area: prog; }
 .sch-roster__tags { grid-area: tags; }
 .sch-roster__last { display: none; }
 .sch-roster__list button > i { grid-area: go; }
}

/* teacher area: calm header, tabs, overview, homework rows, add student */
.sch-thead { align-items: center; padding: 16px 18px; }
.sch-thead__main { display: flex; align-items: center; gap: 14px; }
.sch-thead__main .sch-ava--lg { grid-row: auto; flex: none; }
.sch-thead h2 { font-size: 1.3rem; margin: 0 0 4px; }
.sch-thead__hello { display: inline; font-size: 1rem; }
.sch-thead__courses { margin: 2px 0 0; }
.sch-tabs--teacher { box-shadow: 0 4px 14px rgba(0, 35, 102, 0.06); }
.sch-tabs--teacher button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.sch-tabs--teacher button b { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 99px; background: #e6a817; color: #fff; font-size: 0.72rem; display: inline-grid; place-items: center; }
.sch-tstats { margin-bottom: 16px; }
.sch-listhead, .sch-rosterhead { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.sch-libhead { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }

.sch-home { display: grid; grid-template-columns: 1.25fr 1fr; gap: 16px; }
.sch-home__box { border: 1px solid var(--s-line); border-radius: 18px; padding: 16px; background: #fbfcff; }
.sch-home__box h3 { display: flex; align-items: center; gap: 8px; font-size: 1.05rem; }
.sch-home__box h3 i { color: var(--s-blue); }
.sch-home__h2 { margin-top: 18px !important; }
.sch-home__empty { color: var(--s-green) !important; font-weight: 700; padding: 18px 4px; }
.sch-queue, .sch-mini { list-style: none; margin: 8px 0; padding: 0; display: grid; gap: 6px; }
.sch-queue button, .sch-mini button { width: 100%; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto 12px; gap: 10px; align-items: center; text-align: left; padding: 9px 12px; border: 1px solid var(--s-line); border-radius: 14px; background: #fff; cursor: pointer; font: inherit; color: var(--s-navy); }
.sch-queue button:hover, .sch-mini button:hover { border-color: #b9c8e6; background: #f6f9ff; }
.sch-queue .sch-ava { grid-row: auto; }
.sch-queue__who, .sch-mini button > span:first-child { display: grid; min-width: 0; }
.sch-queue__who strong, .sch-queue__who small, .sch-mini strong, .sch-mini small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sch-queue small, .sch-mini small { color: var(--s-mute); font-size: 0.78rem; }
.sch-queue__meta { display: flex; align-items: center; gap: 6px; }
.sch-queue__meta i { color: var(--s-blue); }
.sch-queue button > i, .sch-mini button > i { color: #a3b1c6; }
.sch-mini button { grid-template-columns: minmax(0, 1fr) auto; }
.sch-mini__n { font-weight: 800; color: var(--s-deep); font-size: 0.9rem; }
.sch-quick { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.sch-quick button { display: flex; gap: 10px; align-items: center; text-align: left; padding: 12px; border: 1px solid var(--s-line); border-radius: 14px; background: #fff; cursor: pointer; font: inherit; color: var(--s-navy); transition: transform 0.15s, box-shadow 0.15s; }
.sch-quick button:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0, 35, 102, 0.1); }
.sch-quick i { width: 38px; height: 38px; flex: none; border-radius: 12px; display: grid; place-items: center; background: #eaf0ff; color: var(--s-blue); }
.sch-quick span { display: grid; }
.sch-quick small { color: var(--s-mute); font-size: 0.76rem; }

.sch-hwrows { list-style: none; margin: 8px 0 0; padding: 0; border: 1px solid var(--s-line); border-radius: 16px; overflow: hidden; background: #fff; }
.sch-hwrows li + li { border-top: 1px solid #edf1f8; }
.sch-hwrows button { width: 100%; display: grid; grid-template-columns: minmax(180px, 2fr) 96px minmax(120px, 1fr) minmax(110px, auto) 14px; gap: 12px; align-items: center; text-align: left; padding: 12px 16px; border: 0; background: transparent; cursor: pointer; font: inherit; color: var(--s-navy); border-left: 4px solid var(--cc, var(--s-line)); }
.sch-hwrows button:hover { background: #f6f9ff; }
.sch-hwrows__main { display: grid; min-width: 0; }
.sch-hwrows__main small, .sch-hwrows__prog small { color: var(--s-mute); font-size: 0.78rem; }
.sch-hwrows__prog { display: grid; gap: 4px; }
.sch-hwrows__mark { display: flex; flex-wrap: wrap; gap: 4px; justify-content: flex-end; }
.sch-hwrows button > i { color: #a3b1c6; }
.sch-group { margin-top: 16px; }

.sch-addgrid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(240px, 1fr); gap: 18px; align-items: start; }
.sch-addform h3 { margin-bottom: 4px; }
.sch-addcourses { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.sch-addcourse input { position: absolute; opacity: 0; pointer-events: none; }
.sch-addcourse > span { display: grid; gap: 2px; padding: 12px; border: 2px solid var(--s-line); border-radius: 14px; background: #fff; font-weight: 800; cursor: pointer; }
.sch-addcourse > span i { color: var(--cc); margin-right: 4px; }
.sch-addcourse small { font-weight: 600; color: var(--s-mute); font-size: 0.76rem; }
.sch-addcourse input:checked + span { border-color: var(--cc); background: color-mix(in srgb, var(--cc) 8%, #fff); box-shadow: 0 4px 12px color-mix(in srgb, var(--cc) 25%, transparent); }
.sch-addcourse input:focus-visible + span { outline: 3px solid #1f3f9f; outline-offset: 2px; }
.sch-codebox { display: flex; gap: 6px; }
.sch-codebox input { flex: 1; letter-spacing: 0.3em; font-weight: 800; font-size: 1.1rem; }
.sch-addside { border: 1px solid var(--s-line); border-radius: 18px; padding: 16px; background: #f7f9ff; }
.sch-addside h4 { display: flex; gap: 8px; align-items: center; color: var(--s-deep); }
.sch-addside ol { margin: 6px 0 12px; padding-left: 20px; display: grid; gap: 4px; }
.sch-added { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 6px; }
.sch-added li { display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; padding: 10px 12px; border-radius: 12px; background: #fff; border: 1px solid #cfe9dc; }
.sch-added small { color: var(--s-mute); grid-column: 1; }
.sch-added__code { grid-column: 1; font-size: 0.86rem; }
.sch-added__code b { letter-spacing: 0.15em; color: var(--s-green); }
.sch-added .sch-link { grid-column: 2; grid-row: 1 / span 3; align-self: center; }

/* Vietnamese accent bar */
.sch-vn { margin: -6px 0 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.sch-vn__kbd { display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 12px; border-radius: 9px; border: 1px solid #b9c8e6; background: #f4f7ff; font: 700 0.85rem var(--ui, system-ui); color: #12305f; cursor: pointer; }
.sch-vn__kbd.is-on { background: #12305f; border-color: #12305f; color: #fff; }
.sch-vkb { margin: -4px 0 14px; padding: 10px; border-radius: 16px; background: linear-gradient(180deg, #eef2f9, #e2e8f3); border: 1px solid #cfd8e8; box-shadow: 0 10px 28px rgba(18, 48, 95, 0.12); display: grid; gap: 6px; user-select: none; }
.sch-vkb[hidden] { display: none; }
.sch-vkb__pred { display: flex; gap: 6px; overflow-x: auto; min-height: 36px; align-items: center; padding: 0 2px 4px; border-bottom: 1px solid #d3dbea; }
.sch-vkb__pred button { flex: none; padding: 6px 14px; border-radius: 999px; border: 1px solid #b9c8e6; background: #fff; font: 700 0.95rem var(--ui, system-ui); color: #12305f; cursor: pointer; }
.sch-vkb__pred button:first-child { background: #1d4fd8; border-color: #1d4fd8; color: #fff; }
.sch-vkb__hint { font-size: 0.8rem; color: #6b7a93; }
.sch-vkb__row { display: flex; gap: 5px; justify-content: center; }
.sch-vkb__row button { flex: 1 1 0; max-width: 46px; min-width: 0; height: 42px; border-radius: 9px; border: 0; background: #fff; box-shadow: 0 1px 0 #b7c2d6; font: 600 1.05rem var(--ui, system-ui); color: #0f1e3a; cursor: pointer; }
.sch-vkb__row button:active { background: #dfe7f7; }
.sch-vkb__row--acc button { background: #f6f8fd; color: #12305f; font-weight: 700; }
.sch-vkb__row .sch-vkb__wide { max-width: 64px; flex-grow: 1.5; background: #cfd8e8; }
.sch-vkb__row .sch-vkb__wide.is-on { background: #12305f; color: #fff; }
.sch-vkb__row .sch-vkb__space { max-width: none; flex-grow: 6; font-size: 0.85rem; color: #6b7a93; }
.sch-vkb__row .sch-vkb__done { max-width: 90px; flex-grow: 2; background: #1d4fd8; color: #fff; font-size: 0.9rem; font-weight: 700; }
.sch-vkb__telex { display: flex; align-items: center; gap: 5px; padding: 0 8px; font-size: 0.8rem; font-weight: 700; color: #33415c; cursor: pointer; }
.sch-vkb .sch-vn__sep { display: none; }
@media (max-width: 480px) { .sch-vkb { padding: 8px 5px; } .sch-vkb__row { gap: 4px; } .sch-vkb__row button { height: 40px; font-size: 0.98rem; } .sch-vn__keys button { min-width: 30px; height: 32px; } }
.sch-vn__telex { display: flex; align-items: center; gap: 6px; font-size: 0.8rem; color: var(--s-mute); cursor: pointer; }
.sch-vn__telex small { opacity: 0.85; }
.sch-vn__keys { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.sch-vn__keys button { min-width: 34px; height: 34px; border-radius: 9px; border: 1px solid var(--s-line); background: #fff; font: 700 1rem var(--ui, system-ui); color: var(--s-navy); cursor: pointer; }
.sch-vn__keys button:hover { background: #eef3ff; border-color: #b9c8e6; }
.sch-vn__sep { width: 1px; height: 22px; background: var(--s-line); margin: 0 4px; }
.sch-vn__sug { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: -4px 0 12px; padding: 8px 10px; border-radius: 12px; background: #f2f7ff; border: 1px solid #cddcf5; }
.sch-vn__sug[hidden] { display: none; }
.sch-vn__suglbl { font-size: 0.78rem; font-weight: 700; color: var(--s-mute); margin-right: 2px; }
.sch-vn__suglbl i { color: #2b5fd9; }
.sch-vn__sug button { padding: 6px 12px; border-radius: 999px; border: 1px solid #b9c8e6; background: #fff; font: 700 0.95rem var(--ui, system-ui); color: var(--s-navy); cursor: pointer; }
.sch-vn__sug button:first-of-type { background: #1d4fd8; border-color: #1d4fd8; color: #fff; }
.sch-vn__sug button:hover { filter: brightness(0.96); }

/* student area steps */
.sch-sa__step { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--s-deep); color: #fff; font-size: 0.75rem; font-weight: 800; margin-right: 6px; }
.sch-sa__t .sch-ava { width: 30px; height: 30px; padding: 0; border: 0; border-radius: 50%; background: linear-gradient(135deg, #0a3a9e, #2563eb); color: #fff; font-size: 0.72rem; box-shadow: none; grid-row: auto; }
.sch-sa__hint { margin: 10px 0 0 !important; font-size: 0.85rem; color: var(--s-mute) !important; }
.sch-sa__who { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }

@media (max-width: 820px) {
 .sch-home, .sch-addgrid { grid-template-columns: 1fr; }
 .sch-tabs--teacher { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
 .sch-tabs--teacher button { flex: 0 0 auto; }
 .sch-hwrows button { grid-template-columns: minmax(0, 1fr) auto 14px; grid-template-areas: "main state go" "prog mark go"; row-gap: 6px; }
 .sch-hwrows__main { grid-area: main; }
 .sch-hwrows__state { grid-area: state; }
 .sch-hwrows__prog { grid-area: prog; }
 .sch-hwrows__mark { grid-area: mark; }
 .sch-hwrows button > i { grid-area: go; }
}
@media (max-width: 480px) { .sch-quick { grid-template-columns: 1fr; } .sch-thead__main .sch-ava--lg { display: none; } }

/* invitations, activation, signed-in card */
.sch-added li { grid-template-columns: 1fr; }
.sch-added__acts { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.sch-sa__who { justify-content: flex-start; }
.sch-sa__whoname { display: grid; flex: 1; min-width: 0; }
.sch-sa__whoname small { color: var(--s-mute); }
.sch-join { width: 100%; max-width: 560px; margin: 0 auto; box-sizing: border-box; }
.sch-join__id { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.sch-join__id .sch-ava { width: 56px; height: 56px; font-size: 1.2rem; }
.sch-join__id h3 { margin: 2px 0; }
.sch-join__id small { color: var(--s-mute); }
.sch-sa__find .sch-check, .sch-join .sch-check { display: flex; align-items: center; gap: 8px; margin: 2px 0 12px; font-size: 0.9rem; color: var(--s-deep); }

/* top menu: areas + badges */
.ama-course-nav .ama-nav-pill { position: relative; }
.top-main-nav-wrap .ama-nav-sep { display: none; }
.ama-nav-sep { flex: none; align-self: center; width: 1px; height: 26px; background: rgba(255, 255, 255, 0.25); margin: 0 2px; }
.sidebar-nav .ama-nav-sep { width: auto; height: 1px; margin: 4px 8px; background: rgba(0, 0, 0, 0.1); }
html body .ama-course-nav .ama-nav-pill b.ama-nav-badge, .ama-nav-badge { position: absolute; font-size: 0.7rem !important; color: #fff !important; line-height: 20px !important; display: block; width: auto !important; top: -6px; right: -6px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: #e11d48; color: #fff; font: 800 0.7rem/20px var(--ui, system-ui); text-align: center; box-shadow: 0 0 0 2px #0b1d3f; }
.ama-nav-badge[hidden] { display: none !important; }
.sch-vn:has(.sch-vn__kbd.is-on) .sch-vn__keys { display: none; }

/* header: Teacher area under Menu, Student area under Sign In */
.ama-hstack { display: flex; flex-direction: column; align-items: stretch; gap: 6px; flex: none; }
.ama-hstack--end { align-items: stretch; }
.ama-area-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 30px; padding: 0 10px; border-radius: 9px; border: 1px solid #c9d5ea; background: #f4f7fd; color: #12305f; font: 700 0.78rem var(--ui, system-ui); white-space: nowrap; cursor: pointer; }
.ama-area-btn i { color: #1d4fd8; }
.ama-area-btn:hover { background: #e7eefb; }
body.view-teacher .ama-area-btn[data-view="teacher"], body.view-student .ama-area-btn[data-view="student"] { background: #12305f; border-color: #12305f; color: #fff; }
body.view-teacher .ama-area-btn[data-view="teacher"] i, body.view-student .ama-area-btn[data-view="student"] i { color: #f5c542; }
.ama-staff-row__btn { position: relative; }
@media (max-width: 480px) { .ama-area-btn { height: 28px; padding: 0 8px; font-size: 0.72rem; } }
html body #topbar .ama-topbar__inner .ama-topbar-pro { flex-direction: column !important; align-items: stretch !important; justify-content: center !important; gap: 6px !important; }
html body #topbar .ama-topbar__inner .ama-area-btn { min-height: 0 !important; height: 32px !important; padding: 0 12px !important; border-radius: 10px !important; font: 700 0.8rem/1 system-ui, -apple-system, "Segoe UI", sans-serif !important; color: #12305f !important; -webkit-text-fill-color: #12305f !important; background: #f4f7fd !important; border: 1px solid #c9d5ea !important; box-shadow: none !important; gap: 7px !important; }
html body #topbar .ama-topbar__inner .ama-area-btn > i { width: auto !important; height: auto !important; background: none !important; color: #1d4fd8 !important; -webkit-text-fill-color: #1d4fd8 !important; font-size: 0.85rem !important; }
#topbar .ama-area-btn:hover { transform: none !important; background: #e7eefb !important; }
body.view-teacher #topbar .ama-area-btn[data-view="teacher"], body.view-student #topbar .ama-area-btn[data-view="student"] { background: #12305f !important; border-color: #12305f !important; color: #fff !important; -webkit-text-fill-color: #fff !important; }
body.view-teacher #topbar .ama-area-btn[data-view="teacher"] > i, body.view-student #topbar .ama-area-btn[data-view="student"] > i { color: #f5c542 !important; -webkit-text-fill-color: #f5c542 !important; }
@media (max-width: 640px) { html body #topbar .ama-topbar__inner .ama-topbar-pro > .ama-area-btn { grid-column: 4 / 5; width: 100% !important; padding: 0 4px !important; font-size: 0.68rem !important; gap: 4px !important; } html body #topbar .ama-topbar__inner .ama-hstack .ama-area-btn { padding: 0 6px !important; font-size: 0.7rem !important; height: 28px !important; } }

/* header area buttons: gold nav-pill look */
html body #topbar .ama-topbar__inner .ama-area-btn { height: 44px !important; padding: 0 16px !important; border-radius: 14px !important; font: 800 0.95rem/1 system-ui, -apple-system, "Segoe UI", sans-serif !important; color: #241800 !important; -webkit-text-fill-color: #241800 !important; background: linear-gradient(145deg, #f7d77a 0%, #e8c04a 45%, #c9952a 100%) !important; border: 1px solid rgba(255,255,255,.35) !important; box-shadow: 0 0 0 1px rgba(247,215,122,.35), 0 4px 12px rgba(201,149,42,.25) !important; gap: 8px !important; }
html body #topbar .ama-topbar__inner .ama-area-btn > i { color: #1a1200 !important; -webkit-text-fill-color: #1a1200 !important; font-size: 1.1rem !important; }
html body #topbar .ama-topbar__inner .ama-area-btn:hover { filter: brightness(1.05); background: linear-gradient(145deg, #f7d77a 0%, #e8c04a 45%, #c9952a 100%) !important; }
body.view-teacher #topbar .ama-topbar__inner .ama-area-btn[data-view="teacher"], body.view-student #topbar .ama-topbar__inner .ama-area-btn[data-view="student"] { box-shadow: 0 0 0 2px #12305f, 0 4px 12px rgba(201,149,42,.35) !important; color: #241800 !important; -webkit-text-fill-color: #241800 !important; }
body.view-teacher #topbar .ama-topbar__inner .ama-area-btn[data-view="teacher"] > i, body.view-student #topbar .ama-topbar__inner .ama-area-btn[data-view="student"] > i { color: #1a1200 !important; -webkit-text-fill-color: #1a1200 !important; }
@media (max-width: 640px) { html body #topbar .ama-topbar__inner .ama-area-btn { height: 38px !important; padding: 0 8px !important; font-size: 0.74rem !important; gap: 5px !important; border-radius: 12px !important; } html body #topbar .ama-topbar__inner .ama-area-btn > i { font-size: 0.9rem !important; } }

/* owner button at the very end of home */
html body .ama-owner-end { display: flex !important; flex-wrap: wrap !important; gap: 12px !important; justify-content: center !important; margin: 18px auto 28px !important; padding: 0 16px !important; }
html body .ama-owner-end--top { margin: 4px auto 16px !important; }
html body .ama-owner-end .ama-owner-end__btn { position: relative; display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 10px !important; min-width: 260px; height: 56px !important; padding: 0 28px !important; border-radius: 14px !important; font: 800 1.05rem/1 system-ui, -apple-system, "Segoe UI", sans-serif !important; color: #241800 !important; -webkit-text-fill-color: #241800 !important; text-decoration: none !important; background: linear-gradient(145deg, #f7d77a 0%, #e8c04a 45%, #c9952a 100%) !important; border: 1px solid rgba(255,255,255,.35) !important; box-shadow: 0 0 0 1px rgba(247,215,122,.35), 0 6px 16px rgba(201,149,42,.3) !important; }
html body .ama-owner-end .ama-owner-end__btn i { color: #1a1200 !important; -webkit-text-fill-color: #1a1200 !important; font-size: 1.2rem !important; }
html body .ama-owner-end .ama-owner-end__btn:hover { filter: brightness(1.05); }
@media (max-width: 480px) { html body .ama-owner-end .ama-owner-end__btn { width: 100%; min-width: 0; height: 52px !important; } }

/* model answer timer */
html body .ama-atimer { position: fixed; top: calc(env(safe-area-inset-top, 0px) + 10px); left: 50%; z-index: 2147483000; display: inline-flex; align-items: center; gap: 7px; padding: 6px 8px 8px 12px; border-radius: 999px; background: #0b1f4d; color: #fff; border: 1px solid rgba(247,215,122,.55); box-shadow: 0 8px 22px rgba(4,14,40,.35); font: 700 13px/1 system-ui, -apple-system, "Segoe UI", sans-serif; overflow: hidden; transform: translate(-50%, -14px); opacity: 0; transition: transform .22s ease, opacity .22s ease; pointer-events: auto; }
html body .ama-atimer.is-on { transform: translate(-50%, 0); opacity: 1; }
html body .ama-atimer[hidden] { display: none !important; }
html body .ama-atimer .ama-atimer__ic { color: #f5c542; font-size: 14px; }
html body .ama-atimer .ama-atimer__lbl { color: #cfd8ee; font-weight: 600; font-size: 12px; }
html body .ama-atimer .ama-atimer__t { font-size: 15px; font-variant-numeric: tabular-nums; color: #fff; min-width: 34px; }
html body .ama-atimer .ama-atimer__of { color: #9fb0d6; font-weight: 600; font-size: 12px; font-variant-numeric: tabular-nums; }
html body .ama-atimer .ama-atimer__x { display: inline-grid; place-items: center; width: 20px; height: 20px; min-height: 0; padding: 0; margin: 0 0 0 2px; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: #cfd8ee; font-size: 11px; cursor: pointer; box-shadow: none; }
html body .ama-atimer .ama-atimer__bar { position: absolute; left: 0; bottom: 0; height: 3px; width: var(--p, 0%); background: linear-gradient(90deg, #f7d77a, #e8c04a); transition: width .25s linear; }
html body .ama-atimer.is-done { background: #0f5132; border-color: rgba(134,239,172,.6); }
html body .ama-atimer.is-done .ama-atimer__ic { color: #86efac; }
html body .ama-atimer.is-done .ama-atimer__bar { background: #86efac; }
/* student hub */
.sch-hub { display: grid; gap: 14px; }
.sch-hub [hidden] { display: none !important; }
html body .sch-hub__hero { position: relative; overflow: hidden; border-radius: 22px; padding: 20px 20px 16px; color: #fff; background: radial-gradient(120% 140% at 100% 0%, #1d4fd8 0%, #0b2a6f 45%, #071a45 100%); box-shadow: 0 14px 34px rgba(7,26,69,.28); }
html body .sch-hub__hero::after { content: ""; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgba(247,215,122,.35), rgba(247,215,122,0) 70%); pointer-events: none; }
.sch-hub__me { position: relative; z-index: 1; display: flex; align-items: center; gap: 14px; }
html body .sch-hub__ava { width: 58px; height: 58px; font-size: 1.25rem; background: linear-gradient(145deg, #f7d77a, #c9952a) !important; color: #241800 !important; -webkit-text-fill-color: #241800 !important; box-shadow: 0 0 0 3px rgba(255,255,255,.18); flex: none; }
.sch-hub__hi { flex: 1; min-width: 0; }
html body .sch-hub__hi p { margin: 0; color: #c7d4f5 !important; -webkit-text-fill-color: #c7d4f5 !important; font: 600 .9rem/1.2 system-ui, sans-serif; }
html body .sch-hub__hi h2 { margin: 2px 0 6px; color: #fff !important; -webkit-text-fill-color: #fff !important; font: 800 1.7rem/1.1 "Playfair Display", Georgia, serif; }
html body .sch-hub__hi small { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: #e3eaff !important; -webkit-text-fill-color: #e3eaff !important; font: 600 .85rem/1.2 system-ui, sans-serif; }
html body .sch-hub__hi small i { color: #f5c542 !important; -webkit-text-fill-color: #f5c542 !important; }
html body .sch-hub__out { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; min-height: 0; border-radius: 10px; border: 1px solid rgba(255,255,255,.3) !important; background: rgba(255,255,255,.1) !important; color: #fff !important; -webkit-text-fill-color: #fff !important; font: 700 .8rem/1 system-ui, sans-serif; cursor: pointer; box-shadow: none !important; }
.sch-hub__stats { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-top: 16px; }
html body .sch-hub__stat { display: grid; justify-items: center; gap: 3px; padding: 10px 4px; min-height: 0; border-radius: 14px; border: 1px solid rgba(255,255,255,.16) !important; background: rgba(255,255,255,.08) !important; color: #fff !important; -webkit-text-fill-color: #fff !important; cursor: pointer; box-shadow: none !important; transition: background .15s; }
html body .sch-hub__stat:hover { background: rgba(255,255,255,.16) !important; }
html body .sch-hub__stat i { font-size: 1rem; }
html body .sch-hub__stat b { font: 800 1.35rem/1 system-ui, sans-serif; color: #fff !important; -webkit-text-fill-color: #fff !important; }
html body .sch-hub__stat span { font: 600 .72rem/1.1 system-ui, sans-serif; color: #c7d4f5 !important; -webkit-text-fill-color: #c7d4f5 !important; }
html body .sch-hub__stat--red i { color: #ff8a8a !important; -webkit-text-fill-color: #ff8a8a !important; }
html body .sch-hub__stat--blue i { color: #8fb4ff !important; -webkit-text-fill-color: #8fb4ff !important; }
html body .sch-hub__stat--gold i { color: #f5c542 !important; -webkit-text-fill-color: #f5c542 !important; }
html body .sch-hub__stat--violet i { color: #c4a8ff !important; -webkit-text-fill-color: #c4a8ff !important; }
html body .sch-hub__stat--orange i { color: #ffb066 !important; -webkit-text-fill-color: #ffb066 !important; }
.sch-hub__tabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; padding: 5px; border-radius: 16px; background: #eef2fb; border: 1px solid #dbe3f3; position: sticky; top: 6px; z-index: 5; }
html body .sch-hub__tabs button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 10px 6px; min-height: 0; border: 0 !important; border-radius: 12px; background: transparent !important; color: #34446b !important; -webkit-text-fill-color: #34446b !important; font: 700 .86rem/1.1 system-ui, sans-serif; cursor: pointer; box-shadow: none !important; }
html body .sch-hub__tabs button.is-on { background: #0b2a6f !important; color: #fff !important; -webkit-text-fill-color: #fff !important; box-shadow: 0 4px 12px rgba(11,42,111,.25) !important; }
html body .sch-hub__tabs button.is-on i { color: #f5c542 !important; -webkit-text-fill-color: #f5c542 !important; }
.sch-hub__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.sch-hub__challenge { grid-column: 1 / -1; background: linear-gradient(135deg, #fff8e1, #ffffff 60%) !important; border: 1px solid #f1d58a !important; }
html body .sch-hub__bigq { margin: 8px 0 6px; font: 700 1.2rem/1.35 "Playfair Display", Georgia, serif; color: #0b1f4d !important; -webkit-text-fill-color: #0b1f4d !important; }
.sch-hub__aimline { margin: 0 0 12px; color: #8a6400; font-weight: 700; font-size: .85rem; }
.sch-hub__mini h4 { margin: 6px 0 4px; font-size: 1rem; color: #0b1f4d; }
.sch-hub__mini .sch-btn { margin-top: 8px; }
.sch-hub__grade { display: inline-block; margin: 2px 0 6px; padding: 3px 10px; border-radius: 999px; background: #e8f6ee; color: #0f6b3a; font-weight: 800; font-size: .82rem; }
.sch-hub__quote { margin: 0; color: #4a5878; font-style: italic; font-size: .9rem; }
.sch-hub__week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; margin: 10px 0; }
.sch-hub__day { display: grid; justify-items: center; gap: 4px; }
.sch-hub__day > i { font-style: normal; font-size: .72rem; font-weight: 700; color: #7a879f; }
.sch-hub__day > b { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #eef2fb; border: 2px solid #dbe3f3; color: #fff; font-size: .75rem; }
.sch-hub__day.is-on > b { background: linear-gradient(145deg, #ffb066, #e8590c); border-color: #e8590c; }
.sch-hub__day.is-today > b { box-shadow: 0 0 0 3px rgba(29,79,216,.25); }
.sch-hub__streak { margin: 0; font-weight: 700; color: #b4470b; font-size: .9rem; }
.sch-hub__qgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; }
html body .sch-hub__qgrid button { display: flex; align-items: center; gap: 8px; padding: 10px; min-height: 0; border-radius: 12px; border: 1px solid #dbe3f3 !important; background: #f6f8fd !important; color: #12305f !important; -webkit-text-fill-color: #12305f !important; font: 700 .84rem/1.1 system-ui, sans-serif; cursor: pointer; box-shadow: none !important; text-align: left; }
html body .sch-hub__qgrid button i { color: #1d4fd8 !important; -webkit-text-fill-color: #1d4fd8 !important; }
.sch-hub__rec { display: grid; gap: 14px; }
.sch-hub__pick { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.sch-hub__pick .sch-field { margin: 0; }
.sch-hub__pick .sch-field span i { color: #1d4fd8; margin-right: 4px; }
.sch-hub__pick select { width: 100%; padding: 10px; border-radius: 10px; border: 1px solid #c9d5ea; background: #fff; font: 600 .9rem system-ui, sans-serif; color: #0b1f4d; }
.sch-hub__qbox { padding: 14px; border-radius: 14px; background: #f6f8fd; border: 1px solid #dbe3f3; }
.sch-hub__qbox .sch-eyebrow { margin: 0; }
html body .sch-hub__q { margin: 6px 0 10px; font: 700 1.08rem/1.4 "Playfair Display", Georgia, serif; color: #0b1f4d !important; -webkit-text-fill-color: #0b1f4d !important; }
.sch-hub__mic { display: flex; align-items: center; gap: 18px; padding: 10px 4px; }
html body .sch-hub__micbtn { flex: none; display: grid; place-items: center; width: 78px; height: 78px; min-height: 0; padding: 0; border-radius: 50%; border: 0 !important; background: linear-gradient(145deg, #e63946, #b5172a) !important; color: #fff !important; -webkit-text-fill-color: #fff !important; font-size: 1.7rem; cursor: pointer; box-shadow: 0 10px 24px rgba(200,16,46,.35) !important; transition: transform .12s; }
html body .sch-hub__micbtn:active { transform: scale(.96); }
html body .sch-hub__micbtn.is-rec { background: linear-gradient(145deg, #12305f, #0b1f4d) !important; animation: schHubPulse 1.4s ease-in-out infinite; }
@keyframes schHubPulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(230,57,70,.55); } 50% { box-shadow: 0 0 0 14px rgba(230,57,70,0); } }
.sch-hub__clock { flex: 1; display: grid; gap: 6px; }
.sch-hub__clock b { font: 800 2rem/1 system-ui, sans-serif; font-variant-numeric: tabular-nums; color: #0b1f4d; }
.sch-hub__clock span { color: #5a6886; font-weight: 600; font-size: .85rem; }
.sch-hub__aimbar { position: relative; display: block; height: 8px; border-radius: 99px; background: #e4e9f5; overflow: visible; }
.sch-hub__aimbar > i { display: block; height: 100%; border-radius: 99px; background: #1d4fd8; transition: width .25s linear; }
.sch-hub__aimbar.is-ok > i { background: #16a34a; }
.sch-hub__aimbar.is-over > i { background: #e8590c; }
.sch-hub__aimbar > em { position: absolute; top: -3px; width: 2px; height: 14px; background: #16a34a; border-radius: 2px; }
.sch-hub__take { display: grid; gap: 10px; padding: 14px; border-radius: 14px; background: #f3faf6; border: 1px solid #cfe9da; }
.sch-hub__take audio { width: 100%; }
.sch-hub__hint { margin: 0; }
.sch-hub__vault { min-height: 120px; }
@media (max-width: 720px) {
 .sch-hub__grid, .sch-hub__pick { grid-template-columns: 1fr; }
 .sch-hub__stats { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 5px; }
 html body .sch-hub__stat { padding: 8px 2px; border-radius: 12px; }
 html body .sch-hub__stat b { font-size: 1.1rem; }
 html body .sch-hub__stat span { font-size: .62rem; }
 html body .sch-hub__tabs button span { font-size: .72rem; }
 html body .sch-hub__tabs button { flex-direction: column; gap: 3px; padding: 8px 2px; }
 html body .sch-hub__hi h2 { font-size: 1.4rem; }
 .sch-sa__nav { grid-template-columns: 1fr 1fr; }
 .sch-sa__crumbs { grid-column: 1 / -1; order: -1; }
}
#sch-hub-recs .ama-vault__head { display: none !important; }
#sch-hub-recs .ama-vault__title { margin-top: 0 !important; }
html body .sch-btn.sch-btn--lessons { height: 48px !important; padding: 0 20px !important; font-weight: 800 !important; color: #241800 !important; -webkit-text-fill-color: #241800 !important; background: linear-gradient(145deg, #f7d77a 0%, #e8c04a 45%, #c9952a 100%) !important; border: 0 !important; box-shadow: 0 6px 16px rgba(201,149,42,.35) !important; }
html body .sch-btn.sch-btn--lessons i { color: #241800 !important; -webkit-text-fill-color: #241800 !important; }
/* attendance */
.sch-att { display: grid; gap: 16px; }
.sch-att__top { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
.sch-att__top .sch-field { flex: 1 1 220px; margin: 0; }
.sch-att__msg { min-width: 90px; padding-bottom: 10px; color: #5a6886; font-weight: 700; font-size: .9rem; }
.sch-att__msg.is-ok { color: #15803d; }
.sch-att__msg.is-ok::before { content: "\2713 "; }
.sch-att__msg.is-bad { color: #b42318; }
.sch-att__stats { display: flex; flex-wrap: wrap; gap: 8px; }
.sch-att__stats span { padding: 8px 14px; border-radius: 999px; background: #eef2fb; color: #34446b; font-weight: 600; }
.sch-att__stats b { color: #0b1f4d; }
.sch-att__grid { display: grid; grid-template-columns: minmax(280px, 360px) 1fr; gap: 16px; align-items: start; }
.sch-cal { width: 100%; max-width: 480px; box-sizing: border-box; padding: 16px; border-radius: 18px; background: #fff; border: 1px solid #dbe3f3; box-shadow: 0 6px 18px rgba(11,31,77,.06); }
.sch-cal header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.sch-cal header strong { color: #0b1f4d; font-size: 1.05rem; }
.sch-cal header button { width: 36px; height: 36px; min-height: 0; padding: 0; border-radius: 10px; border: 1px solid #dbe3f3; background: #fff; color: #34446b; cursor: pointer; }
.sch-cal__w, .sch-cal__g { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.sch-cal__w span { text-align: center; color: #8a96b3; font: 700 .72rem/1.6 system-ui, sans-serif; text-transform: uppercase; }
.sch-cal__d { position: relative; display: grid; place-items: center; height: 46px; min-height: 0; padding: 0; border-radius: 10px; border: 1px solid transparent; background: #f6f8fd; color: #34446b; font: 700 .9rem/1 system-ui, sans-serif; cursor: pointer; }
.sch-cal__d.is-pad { background: transparent; cursor: default; }
.sch-cal__d.is-class { background: #fff4cc; color: #6b4e00; }
.sch-cal__d.is-held { background: #0b2a6f; color: #fff; }
.sch-cal__d b { position: absolute; bottom: 2px; font-size: .58rem; color: #f5c542; }
.sch-cal__d.is-today { border-color: #d24726; border-width: 2px; }
.sch-cal__d.is-on { box-shadow: 0 0 0 3px #f5c542; }
.sch-cal__key { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 10px 0 0; color: #5a6886; font-size: .78rem; font-weight: 600; }
.sch-cal__key span { display: inline-block; width: 12px; height: 12px; border-radius: 4px; }
.sch-cal__key .is-class { background: #fff4cc; border: 1px solid #e8c04a; }
.sch-cal__key .is-held { background: #0b2a6f; }
.sch-cal__key .is-today { border: 2px solid #d24726; }
.sch-att__sess { display: grid; gap: 12px; margin: 0; }
.sch-att__sess header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.sch-att__sess h3 { margin: 2px 0 0; }
.sch-att__counts { display: flex; flex-wrap: wrap; gap: 6px; }
.sch-att__counts span { padding: 4px 10px; border-radius: 999px; background: #eef2fb; color: #34446b; font-size: .82rem; font-weight: 700; }
.sch-att__counts .is-p { background: #dcfce7; color: #166534; }
.sch-att__counts .is-l { background: #fef3c7; color: #92400e; }
.sch-att__counts .is-a { background: #fee2e2; color: #991b1b; }
.sch-att__counts .is-e { background: #e0e7ff; color: #3730a3; }
.sch-att__date { display: inline-flex; align-items: center; gap: 6px; padding: 0 12px; height: 44px; border-radius: 12px; border: 1.5px solid #cfdaeb; background: #fbfcff; color: #34446b; width: 100%; box-sizing: border-box; }
html body .sch-att__date input { border: 0 !important; box-shadow: none !important; height: 40px !important; min-height: 0 !important; padding: 0 !important; width: 100% !important; background: transparent !important; font: 600 1rem system-ui, sans-serif; color: #0b1f4d; }
.sch-att__roll { margin: 8px 0 0; color: #0b1f4d; font-size: 1.05rem; }
.sch-att__list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; counter-reset: att; }
.sch-att__list li { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 12px 14px; border-radius: 14px; background: #f6f8fd; border-left: 6px solid #dbe3f3; counter-increment: att; }
.sch-att__list li.is-p { border-left-color: #16a34a; background: #f0fdf4; }
.sch-att__list li.is-l { border-left-color: #d97706; }
.sch-att__list li.is-a { border-left-color: #dc2626; background: #fef2f2; }
.sch-att__list li.is-e { border-left-color: #4f46e5; }
.sch-att__name { color: #0b1f4d; font-weight: 800; font-size: 1.02rem; }
.sch-att__name::before { content: counter(att) ". "; color: #8a96b3; }
.sch-att__marks { display: flex; flex-wrap: wrap; gap: 6px; }
.sch-att__marks button { display: inline-flex; align-items: center; gap: 6px; height: 40px; min-height: 0; padding: 0 12px; border-radius: 12px; border: 1.5px solid #dbe3f3; background: #fff; color: #5a6886; font: 700 .86rem/1 system-ui, sans-serif; cursor: pointer; }
.sch-att__marks button.m-p,
.sch-att__marks button.m-a { height: 44px; min-width: 112px; font-size: .92rem; }
.sch-att__marks button.is-on.m-p { background: #16a34a; border-color: #16a34a; color: #fff; }
.sch-att__marks button.is-on.m-l { background: #d97706; border-color: #d97706; color: #fff; }
.sch-att__marks button.is-on.m-a { background: #dc2626; border-color: #dc2626; color: #fff; }
.sch-att__marks button.is-on.m-e { background: #4f46e5; border-color: #4f46e5; color: #fff; }
.sch-att__meta { display: grid; grid-template-columns: minmax(140px, .8fr) minmax(180px, 1.2fr); gap: 12px; }
.sch-att__meta .sch-field { margin: 0; }
.sch-att__content textarea { min-height: 160px; font-size: 1.05rem; }
.sch-att__h { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; }
.sch-att__reg { width: 100%; border-collapse: collapse; font-size: .88rem; }
.sch-att__reg th, .sch-att__reg td { padding: 6px 8px; border-bottom: 1px solid #eef2fb; text-align: center; white-space: nowrap; }
.sch-att__reg tbody th { text-align: left; color: #0b1f4d; }
.sch-att__reg thead button { display: grid; min-height: 0; padding: 4px 8px; border-radius: 8px; border: 0; background: transparent; color: #0b1f4d; font-weight: 800; cursor: pointer; }
.sch-att__reg thead button small { color: #8a96b3; font-weight: 600; }
.sch-att__reg thead button.is-on { background: #fff4cc; }
.sch-att__reg .c-p { color: #166534; font-weight: 800; }
.sch-att__reg .c-l { color: #92400e; font-weight: 800; }
.sch-att__reg .c-a { color: #fff; background: #ef4444; font-weight: 800; }
.sch-att__reg .c-e { color: #3730a3; font-weight: 800; }
.sch-att__reg .c-x { color: #c3cbe0; }
.sch-att__pc { font-weight: 800; color: #0b1f4d; }
.sch-att__legend { margin: 8px 0 0; font-size: .8rem; }
@media (max-width: 820px) {
 .sch-att__grid { grid-template-columns: 1fr; }
 .sch-att__meta { grid-template-columns: 1fr; }
 .sch-att__marks button.m-l span,
 .sch-att__marks button.m-e span { display: none; }
}

/* My class area (owner) */
html body .sch-tabs button.sch-tab--mine { background: linear-gradient(135deg, #f7c948, #f1a208); color: #0b1f4d; }
html body .sch-tabs button.sch-tab--mine.is-on { background: linear-gradient(135deg, #0b2a6f, #1a3f9a); color: #fff; }
.sch-mc__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px; align-items: flex-end; padding: 18px 20px; border-radius: 18px; background: linear-gradient(135deg, #0b2a6f, #1a3f9a); color: #fff; }
html body .sch-mc__head h3 { margin: 2px 0 8px; font-size: 1.7rem; color: #fff; }
html body .sch-mc__head .sch-eyebrow, html body .sch-mc__head p.sch-eyebrow { color: #f7c948 !important; opacity: 1 !important; }
.sch-mc__meta { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; margin: 0; font-weight: 600; color: #dbe5ff; }
.sch-mc__nums { display: flex; flex-wrap: wrap; gap: 8px; }
.sch-mc__nums span { padding: 8px 14px; border-radius: 999px; background: rgba(255, 255, 255, 0.14); font-weight: 600; }
.sch-mc__nums span.is-warn { background: #f7c948; color: #0b1f4d; }
.sch-mc__nums button.is-warn { padding: 8px 14px; border-radius: 999px; border: 0; background: #f7c948; color: #0b1f4d; font: inherit; font-weight: 700; cursor: pointer; }
.sch-mc__nums button.is-warn:hover { background: #ffd95e; }
.sch-mc__nums b { font-size: 1.15rem; }
.sch-mc__nav { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
html body .sch-mc__nav button { min-height: 44px; padding: 0 16px; border-radius: 12px; border: 1px solid #dbe3f3; background: #f6f8fd; color: #0b2a6f; font: 700 .95rem system-ui, sans-serif; cursor: pointer; }
html body .sch-mc__nav button.is-on { background: #0b2a6f; border-color: #0b2a6f; color: #fff; }
.sch-mc__bar { display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; align-items: center; margin: 4px 0 12px; }
html body .sch-mc__bar h4 { margin: 0; font-size: 1.15rem; color: #0b1f4d; }
.sch-mc__hws, .sch-mc__sts { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.sch-mc__hws li { display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; align-items: center; padding: 14px 16px; border-radius: 14px; background: #f6f8fd; border: 1px solid #e3e9f6; }
.sch-mc__hws li > div:first-child { flex: 1 1 320px; min-width: 0; }
.sch-mc__hws strong { display: block; color: #0b1f4d; font-size: 1.02rem; }
.sch-mc__hws small { display: block; margin: 4px 0 6px; color: #5a6a8f; }
.sch-mc__sts li { display: flex; gap: 12px; align-items: center; padding: 10px 14px; border-radius: 14px; background: #f6f8fd; }
.sch-mc__sts li > div { flex: 1; min-width: 0; }
.sch-mc__sts strong { display: block; color: #0b1f4d; }
.sch-mc__sts small { color: #5a6a8f; word-break: break-all; }
.sch-mc__mats { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.sch-mc__mat { display: grid; grid-template-columns: 96px 1fr; gap: 6px 12px; align-items: center; padding: 10px; border-radius: 14px; background: #f6f8fd; border: 1px solid #e3e9f6; }
.sch-mc__mat img, .sch-mc__matic { width: 96px; height: 54px; object-fit: cover; border-radius: 8px; display: grid; place-items: center; background: #dbe3f3; color: #c0392b; font-size: 1.4rem; }
.sch-mc__mat strong { display: block; color: #0b1f4d; }
.sch-mc__mat small { color: #5a6a8f; }
.sch-mc__mat .sch-btn { grid-column: 1 / -1; }
/* Homework bank */
.sch-bank__bar { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; justify-content: space-between; padding: 12px 14px; margin-bottom: 12px; border-radius: 14px; background: #fff8e1; border: 1px solid #f5dc8a; }
.sch-bank__bar .sch-field { margin: 0; }
.sch-bank__dueok { margin: 0; flex: 1 1 220px; color: #7a5b00; font-weight: 700; }
.sch-bank__dueok.is-on { color: #166534; }
.sch-hw-due { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; margin-top: 10px; }
.sch-hw-due label { display: grid; gap: 4px; font-weight: 700; color: #0b1f4d; font-size: .85rem; }
.sch-hw-due input { min-height: 42px; padding: 6px 10px; border-radius: 10px; border: 1.5px solid #cfdaeb; }
.sch-push { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 0 0 12px; padding: 12px 14px; border-radius: 14px; background: #eef6ff; border: 1px solid #c9ddf8; }
.sch-push p { margin: 0; flex: 1 1 220px; color: #0b1f4d; }
.sch-push strong { display: block; }
.sch-bank__parts { display: flex; gap: 6px; flex-wrap: wrap; }
html body .sch-bank__parts button { min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1px solid #dbe3f3; background: #fff; color: #0b2a6f; font: 700 .9rem system-ui, sans-serif; cursor: pointer; }
html body .sch-bank__parts button.is-on { background: #0b2a6f; color: #fff; border-color: #0b2a6f; }
.sch-bank__sum { margin: 0 0 12px; color: #34446b; }
.sch-bank__topics { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; }
html body .sch-bank__topic { position: relative; display: grid; gap: 4px; justify-items: start; text-align: left; padding: 14px; min-height: 110px; border-radius: 14px; border: 1px solid #dbe3f3; background: #fff; color: #0b1f4d; cursor: pointer; box-shadow: 0 3px 10px rgba(11, 31, 77, .05); }
html body .sch-bank__topic:hover { border-color: #0b2a6f; box-shadow: 0 6px 16px rgba(11, 31, 77, .12); }
.sch-bank__topic > i { font-size: 1.4rem; color: #1a3f9a; }
.sch-bank__topic strong { font-size: 1rem; }
.sch-bank__topic small { color: #5a6a8f; }
.sch-bank__topic small b { color: #1e8e4e; }
.sch-bank__n { position: absolute; top: 10px; right: 12px; font: 700 .8rem system-ui, sans-serif; color: #9aa7c4; }
.sch-bank__crumb { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 8px; }
html body .sch-bank__crumb h4 { margin: 0; font-size: 1.3rem; color: #0b1f4d; }
.sch-bank__vocab { margin: 0 0 12px; padding: 10px 14px; border-radius: 12px; background: #eef3ff; color: #34446b; }
.sch-bank__part { margin-bottom: 16px; }
html body .sch-bank__part h5 { margin: 0 0 8px; font-size: 1.05rem; color: #0b2a6f; text-transform: uppercase; letter-spacing: .06em; }
.sch-bank__tasks { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 12px; }
.sch-bank__task { display: flex; flex-direction: column; gap: 6px; padding: 14px; border-radius: 14px; background: #fff; border: 1px solid #dbe3f3; }
.sch-bank__task.is-given { background: #effaf3; border-color: #9fd9b5; }
.sch-bank__task ol, .sch-bank__task ul { margin: 0; padding-left: 20px; color: #22325a; line-height: 1.45; }
.sch-bank__task footer { margin-top: auto; padding-top: 8px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.sch-bank__cue { margin: 0; font-weight: 700; color: #0b1f4d; }
.sch-bank__exp { margin: 0; color: #22325a; font-style: italic; }
.sch-bank__given { margin: 0; flex: 1; color: #1e8e4e; font-weight: 700; font-size: .9rem; }
.sch-bank__tag { display: inline-block; padding: 3px 10px; border-radius: 999px; font: 700 .78rem system-ui, sans-serif; color: #fff; background: #1a3f9a; }
.sch-bank__tag--p2 { background: #c8102e; }
.sch-bank__tag--p3 { background: #0f7b6c; }
html body .sch-btn.is-arm { background: #1e8e4e; border-color: #1e8e4e; color: #fff; }
.sch-alert--soon { background: linear-gradient(135deg, #0b2a6f, #1a3f9a 60%, #3a64c8); box-shadow: 0 12px 28px rgba(11, 42, 111, .28); }

/* Assessment rubric + Sophia (owner class area) */
.sch-score__note { font-size: 0.8rem; line-height: 1.35; color: #334155; font-weight: 500; }
.sch-scores { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.sch-stages { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 8px 0; }
.sch-stages__k { font-weight: 800; font-size: 0.78rem; color: var(--s-navy); letter-spacing: .06em; margin-right: 4px; }
.sch-stage { display: inline-flex; gap: 5px; align-items: center; padding: 4px 10px; border-radius: 999px; font-size: 0.8rem; font-weight: 700; }
.sch-stage.is-ok { background: #e7f6ee; color: #166534; }
.sch-stage.is-miss { background: #fdecec; color: #b42318; }
.sch-say { margin-top: 4px; }
.sch-critrow { display: grid; gap: 6px; min-width: 0; }
.sch-critnote { width: 100%; border: 1px solid var(--s-line); border-radius: 10px; padding: 8px 10px; font: inherit; font-size: 0.86rem; }
.sch-stagepick { border: 1px solid var(--s-line); border-radius: 14px; padding: 10px 12px; margin: 0 0 12px; display: flex; flex-wrap: wrap; gap: 8px; background: #fff; }
.sch-stagepick legend { padding: 0 6px; font-weight: 800; font-size: 0.9rem; color: var(--s-navy); }
.sch-stagepick label { display: inline-flex; gap: 6px; align-items: center; padding: 6px 12px; border: 1px solid var(--s-line); border-radius: 999px; font-weight: 700; font-size: 0.86rem; cursor: pointer; }
.sch-stagepick label:has(input:checked) { background: #e7f6ee; border-color: #86c9a2; color: #166534; }
.sch-sophia { display: flex; align-items: center; gap: 12px; padding: 12px 14px; margin: 8px 0 12px; border-radius: 16px; background: linear-gradient(135deg, #f4f0ff, #eef4ff); border: 1px solid #d9cffb; }
.sch-sophia > div { flex: 1; min-width: 0; display: grid; gap: 2px; }
.sch-sophia strong { color: #3b2a8a; }
.sch-sophia small { color: #475569; font-size: 0.84rem; line-height: 1.4; }
.sch-sophia__av { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, #7c5cf0, #4f46e5); box-shadow: 0 4px 12px rgba(79, 70, 229, .3); }
.sch-sophia.is-busy .sch-sophia__av { animation: sch-pulse 1.4s ease-in-out infinite; }
@keyframes sch-pulse { 50% { transform: scale(1.08); box-shadow: 0 0 0 8px rgba(124, 92, 240, .15); } }
.sch-btn--sophia { background: linear-gradient(135deg, #7c5cf0, #4f46e5) !important; border-color: #4f46e5 !important; color: #fff !important; }
.sch-switch { flex: none; width: 50px; height: 28px; border-radius: 999px; border: 0; background: #cbd5e1; position: relative; cursor: pointer; transition: background .2s; padding: 0; }
.sch-switch span { position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .2s; }
.sch-switch.is-on { background: #4f46e5; }
.sch-switch.is-on span { transform: translateX(22px); }
.sch-switch:disabled { opacity: .5; }
.sch-trans { margin: 0 0 12px; }
.sch-trans summary { cursor: pointer; font-weight: 700; color: var(--s-navy); }

/* Student progress, model answer, privacy */
.sch-progress { margin: 14px 0; padding: 14px 16px; border-radius: 16px; background: linear-gradient(135deg, #f0f6ff, #fff); border: 1px solid var(--s-line); }
.sch-progress h4 { margin: 0 0 10px; display: flex; gap: 8px; align-items: center; color: var(--s-navy); }
.sch-progress h4 small { font-weight: 600; color: var(--s-mute); font-size: 0.82rem; }
.sch-progress__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.sch-progress__grid > div { display: grid; gap: 4px; padding: 8px 10px; border-radius: 12px; background: #fff; border: 1px solid var(--s-line); }
.sch-progress__grid span { font-size: 0.78rem; font-weight: 700; color: var(--s-mute); }
.sch-progress__all { border: 2px solid #d6b36a !important; background: #fffbeb !important; }
.sch-up { color: #15803d; }
.sch-down { color: #b42318; }
.sch-model { margin-top: 10px; border: 1px solid #e9d8a6; border-radius: 14px; padding: 10px 12px; background: #fffbeb; }
.sch-model summary { cursor: pointer; font-weight: 800; color: #8a6200; }
.sch-privacy { margin: 10px 0 0; font-size: 0.84rem; line-height: 1.45; color: #334155; background: #f1f5f9; border-radius: 12px; padding: 10px 12px; }
.sch-privacy i { color: #1d4ed8; }

/* IELTS Speaking -2-: the owner's own class */
.sch-course--vip { background: linear-gradient(135deg, #f7d77a, #d4a017) !important; color: #3b2a00 !important; border-color: #c9971a !important; font-weight: 800; }
html body .sch-tabs button.sch-tab--vip { background: linear-gradient(135deg, #fbe39b, #d4a017); color: #2b1d00; box-shadow: 0 2px 10px rgba(212,160,23,.35); }
html body .sch-tabs button.sch-tab--vip.is-on { background: linear-gradient(135deg, #0b1f4d, #1a3f9a); color: #f7d77a; }
.sch-vipnote { margin: 0 0 12px; padding: 10px 14px; border-radius: 14px; background: linear-gradient(135deg, #fff8e1, #fdf0c2); border: 1px solid #e8c766; color: #5a4100; }
.sch-vipnote i { color: #b8860b; }

/* Phones: everything reachable - pinch-zoom allowed, wide tables and tab rows slide sideways */
.sch-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.sch-table-wrap, .sch-tablewrap { touch-action: pan-x pan-y pinch-zoom; overscroll-behavior-x: contain; }
#sch-owner, #sch-owner-head, #sch-teacher { max-width: 100%; }
@media (max-width: 820px) {
 html body .sch-tabs { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 4px; }
 html body .sch-tabs::-webkit-scrollbar { display: none; }
 html body .sch-tabs > button { flex: 0 0 auto; white-space: nowrap; }
 .sch-filters { flex-wrap: wrap; }
 .sch-filters > * { min-width: 0; flex: 1 1 140px; max-width: 100%; }
 .sch-inline { flex-wrap: wrap; }
 .sch-ostats { flex-wrap: wrap; }
 .sch-card { min-width: 0; }
}

/* Phones: each homework submission is a card, with Open & review always visible */
@media (max-width: 640px) {
 .sch-table--hw { min-width: 0 !important; }
 .sch-table--hw thead { display: none; }
 .sch-table--hw, .sch-table--hw tbody { display: block; }
 .sch-table--hw tr { display: grid; grid-template-columns: 34px 1fr; gap: 4px 10px; padding: 12px 4px; border-bottom: 1px solid var(--s-line); }
 .sch-table--hw td { display: block; padding: 0 !important; border: 0 !important; min-width: 0; }
 .sch-table--hw td.sch-tick { grid-row: 1 / span 5; padding-top: 2px !important; }
 .sch-table--hw td:empty { display: none; }
 .sch-table--hw td:last-child .sch-btn { width: 100%; min-height: 44px; margin-top: 6px; }
 .sch-table--hw td small { overflow-wrap: anywhere; }
}


/* Owner Speaking Lab - professional classroom challenges */
.sch-lab {
 margin: 18px 0 28px;
 padding: 18px 18px 22px;
 border-radius: 18px;
 background: linear-gradient(160deg, #0b1f4d 0%, #122a63 45%, #0a3a9e 100%);
 color: #f4f7ff;
 box-shadow: 0 16px 40px rgba(11, 31, 77, 0.28);
 border: 1px solid rgba(247, 201, 72, 0.28);
}
.sch-lab--files, .sch-lab--compact {
 background: #fff;
 color: inherit;
 border: 1px solid #dbe3f3;
 box-shadow: none;
}
.sch-lab--compact .sch-lab__head h4, .sch-lab--compact .sch-lab__card h5 { color: #0b1f4d; }
.sch-lab--compact .sch-eyebrow { color: #9a7400 !important; }
.sch-lab--compact .sch-lab__icon { background: #eff6ff; color: #1d4ed8; }
.sch-lab--files .sch-lab__head h4 { color: #0b1f4d; }
.sch-lab--files .sch-muted { color: #5a6a8f; }
.sch-lab__head { margin-bottom: 14px; max-width: 740px; }
.sch-lab__head h4 { margin: 4px 0 8px; font-size: 1.35rem; color: #fff; letter-spacing: 0.01em; }
.sch-lab .sch-eyebrow { color: #f7c948 !important; opacity: 1 !important; }
.sch-lab .sch-muted { color: rgba(244, 247, 255, 0.78); }
.sch-lab__tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 8px; }
.sch-lab__tab {
 display: grid; gap: 2px; text-align: left;
 min-height: 52px; padding: 8px 14px; border-radius: 12px;
 border: 1px solid rgba(255,255,255,0.18);
 background: rgba(255,255,255,0.06); color: #fff; cursor: pointer;
}
.sch-lab__tab strong { font-size: 0.95rem; }
.sch-lab__tab small { font-size: 0.72rem; opacity: 0.75; }
.sch-lab__tab.is-on { background: #f7c948; color: #0b1f4d; border-color: #f7c948; }
.sch-lab__tab.is-on small { opacity: 0.85; color: #3a2a00; }
.sch-lab__desc { margin: 0 0 14px; font-size: 0.92rem; color: rgba(244,247,255,0.82); }
.sch-lab__games {
 display: grid;
 grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
 gap: 12px;
}
.sch-lab__card {
 display: grid; gap: 8px; align-content: start;
 padding: 14px; border-radius: 14px;
 background: rgba(255,255,255,0.08);
 border: 1px solid rgba(255,255,255,0.14);
 min-height: 210px;
}
.sch-lab__cardtop { display: flex; justify-content: space-between; gap: 8px; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: #f7c948; }
.sch-lab__stars { color: #f7c948; }
.sch-lab__stars .is-dim { opacity: 0.28; }
.sch-lab__icon {
 width: 42px; height: 42px; border-radius: 12px;
 display: grid; place-items: center;
 background: rgba(247, 201, 72, 0.16); color: #f7c948; font-size: 1.1rem;
}
.sch-lab__card h5 { margin: 0; font-size: 1.08rem; color: #fff; }
.sch-lab__card p { margin: 0; font-size: 0.86rem; line-height: 1.45; color: rgba(244,247,255,0.78); }
.sch-lab__card .sch-btn { margin-top: auto; justify-self: start; background: #f7c948; color: #0b1f4d; border: 0; }
.sch-lab__card .sch-btn:hover { background: #ffd95e; }
.sch-lab__stage {
 margin-top: 14px; padding: 12px; border-radius: 14px;
 background: #fff; color: #0b1f4d;
}
.sch-lab__stagebar {
 display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
 justify-content: space-between; margin-bottom: 10px;
 padding-bottom: 10px; border-bottom: 1px solid #e3e9f4;
}
.sch-lab__canvas { min-height: 420px; }
.sch-lab__canvas .game-pro--tv {
 font-size: 1.08rem;
}
.sch-lab__canvas .game-pro--tv .game-pro__title { font-size: 1.55rem; }
.sch-lab__canvas .game-pro--tv .game-quote,
.sch-lab__canvas .game-pro--tv .game-quote--speak { font-size: 1.35rem; line-height: 1.55; }
.sch-lab__canvas .game-pro--tv .game-choice--pro,
.sch-lab__canvas .game-pro--tv .game-connector {
 font-size: 1.05rem;
 min-height: 52px;
 padding: 14px 16px;
}
.sch-lab__canvas .game-pro--tv .game-prompt--pro { font-size: 0.92rem; }
.sch-lab__loading { padding: 40px 12px; text-align: center; color: #5a6a8f; }
.sch-mc__baracts { display: flex; flex-wrap: wrap; gap: 8px; }


/* Class timer + Team Arena */
.sch-class-timer {
 display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center; justify-content: space-between;
 margin: 0 0 16px; padding: 14px 16px; border-radius: 16px;
 background: linear-gradient(135deg, #0b1f4d, #163a7a); color: #fff;
 border: 1px solid rgba(247,201,72,.35);
}
.sch-class-timer__l { display: grid; gap: 2px; }
.sch-class-timer__l i { color: #f7c948; margin-right: 6px; }
.sch-class-timer__l small { color: rgba(255,255,255,.72); font-size: .78rem; }
.sch-class-timer__c { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.sch-class-timer__c label { display: flex; align-items: center; gap: 6px; font-size: .82rem; color: #cfd8ee; }
.sch-class-timer__c input {
 width: 64px; height: 40px; border-radius: 10px; border: 0; padding: 0 8px;
 font: 800 1rem/1 system-ui, sans-serif; text-align: center; color: #0b1f4d;
}
.sch-class-timer__display {
 min-width: 88px; text-align: center; font: 800 1.8rem/1 system-ui, sans-serif;
 font-variant-numeric: tabular-nums; color: #f7c948;
}
.sch-class-timer__display.is-run { color: #7dffa6; }
.sch-class-timer__display.is-low { color: #ff6b61; animation: schPulse 1s ease-in-out infinite; }
.sch-class-timer__r { display: flex; gap: 8px; flex-wrap: wrap; }
@keyframes schPulse { 50% { opacity: .55; } }

.arena-shell { min-height: 360px; }
.arena-setup { display: grid; gap: 14px; max-width: 520px; }
.arena-blurb { margin: 0; color: #5a6a8f; line-height: 1.45; }
.arena-field { display: flex; gap: 10px; align-items: center; font-weight: 700; }
.arena-field select { height: 40px; border-radius: 10px; border: 1px solid #d5deee; padding: 0 10px; }
.arena-names { display: grid; gap: 8px; }
.arena-names input { height: 42px; border-radius: 10px; border: 1px solid #d5deee; padding: 0 12px; font-weight: 700; }
.arena-teams { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.arena-team {
 display: flex; align-items: center; justify-content: space-between; gap: 12px;
 min-width: 140px; padding: 10px 14px; border-radius: 12px;
 background: color-mix(in srgb, var(--ac) 14%, #fff); border: 2px solid var(--ac); color: #0b1f4d;
}
.arena-team.is-turn { box-shadow: 0 0 0 3px color-mix(in srgb, var(--ac) 45%, transparent); }
.arena-team b { font-size: 1.35rem; color: var(--ac); }
.arena-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.arena-timer { display: inline-block; min-width: 64px; padding: 8px 12px; border-radius: 12px; background: #0b1f4d; color: #f7c948; font: 800 1.4rem/1 system-ui, sans-serif; }
.arena-timer.is-low, .arena-timer.is-out { background: #8a1c1c; color: #fff; }
.arena-win { text-align: center; padding: 30px 12px; }
.arena-win i { font-size: 3.5rem; color: #f7c948; }
.arena-win h3 { margin: 10px 0 6px; font-size: 1.8rem; }
.arena-ans { margin-top: 10px; color: #33415c; }
.arena-rank { line-height: 1.8; margin: 12px 0; }
.arena-rank__chip { display: inline-block; margin-right: 6px; color: #8a94a8; font-size: .8rem; }

.sch-lab__canvas .bz-grid {
 display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 12px 0;
}
.sch-lab__canvas .bz-grid--20 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.sch-lab__canvas .bz-tile {
 min-height: 64px; border: 0; border-radius: 14px; background: #0b1f4d; color: #fff;
 font: 800 1.2rem/1 system-ui, sans-serif; cursor: pointer;
}
.sch-lab__canvas .bz-tile.is-used { opacity: .35; cursor: default; background: #6b7a90; }
.sch-lab__canvas .bz-modal {
 position: absolute; inset: 0; display: grid; place-items: center;
 background: rgba(4,10,28,.72); border-radius: 14px; padding: 16px; z-index: 5;
}
.sch-lab__canvas .game-pro { position: relative; }
.sch-lab__canvas .bz-m {
 width: min(560px, 100%); padding: 22px; border-radius: 18px; background: #fff; text-align: center;
 box-shadow: 0 18px 40px rgba(0,0,0,.35);
}
.sch-lab__canvas .bz-word { margin: 8px 0 14px; font-size: clamp(1.6rem, 4vw, 2.4rem); color: #0b1f4d; }
.sch-lab__canvas .bz-kind { color: #c8102e; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; font-size: .78rem; }

/* —— App QR (Owner → App QR) —— */
.ama-qr{max-width:920px;margin:0 auto;padding:8px 4px 28px}
.ama-qr__eyebrow{margin:0 0 6px;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#5b6b8c;font-weight:700}
.ama-qr__head h3{margin:0 0 8px;font-size:1.45rem;color:#0b1f4d}
.ama-qr__head p{margin:0 0 18px;color:#3a4660;line-height:1.55;max-width:46rem}
.ama-qr__card{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-start;background:#fff;border:1px solid #d7deef;border-radius:18px;padding:22px;box-shadow:0 10px 28px rgba(11,31,77,.06)}
.ama-qr__code{flex:0 0 auto;padding:14px;background:#fff;border:1px solid #e4eaf6;border-radius:14px;min-width:260px;min-height:260px;display:flex;align-items:center;justify-content:center}
.ama-qr__canvas img,.ama-qr__img{display:block;width:100%;height:auto;max-width:260px}
.ama-qr__meta{flex:1 1 280px;min-width:0}
.ama-qr__label{margin:0 0 4px;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#6a7896;font-weight:700}
.ama-qr__link{margin:0 0 14px;font-family:ui-monospace,Consolas,monospace;font-size:.92rem;word-break:break-all;color:#0b1f4d;background:#f3f6fc;padding:10px 12px;border-radius:10px}
.ama-qr__acts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.ama-qr__steps{margin:0;padding-left:1.2rem;color:#3a4660;line-height:1.55}
.ama-qr__steps li{margin:0 0 6px}
.ama-qr-fs{position:fixed;inset:0;z-index:12000;background:linear-gradient(160deg,#071433 0%,#0b1f4d 45%,#14306a 100%);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 20px;text-align:center}
.ama-qr-fs__x{position:absolute;top:16px;right:16px;width:44px;height:44px;border:0;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;font-size:1.2rem;cursor:pointer}
.ama-qr-fs__eyebrow{margin:0 0 8px;letter-spacing:.14em;text-transform:uppercase;font-size:.8rem;opacity:.75}
.ama-qr-fs h2{margin:0 0 8px;font-size:clamp(1.6rem,4vw,2.4rem)}
.ama-qr-fs__sub{margin:0 0 22px;opacity:.85;font-size:1.05rem}
.ama-qr-fs__box{background:#fff;padding:18px;border-radius:18px;box-shadow:0 18px 50px rgba(0,0,0,.35)}
.ama-qr-fs__box img,.ama-qr-fs__box canvas{display:block;max-width:min(70vw,360px);height:auto}
.ama-qr-fs__url{margin:18px 0 0;font-family:ui-monospace,Consolas,monospace;font-size:.9rem;opacity:.8;word-break:break-all}
html.ama-qr-open,html.ama-qr-open body{overflow:hidden!important}

/* Student class desk */
.sch-enter { display: grid; justify-items: center; gap: 8px; text-align: center; padding: 48px 20px; border-radius: 24px; color: #fff; background: radial-gradient(120% 140% at 100% 0%, #f59e0b 0%, #e11d48 28%, #1d4ed8 70%, #0b1f4d 100%); box-shadow: 0 18px 40px rgba(11,31,77,.28); }
html body .sch-enter h2 { margin: 0; color: #fff !important; -webkit-text-fill-color: #fff !important; font: 800 2rem/1.1 "Playfair Display", Georgia, serif; }
html body .sch-enter p { margin: 0 0 8px; max-width: 36rem; color: #fff7ed !important; -webkit-text-fill-color: #fff7ed !important; }
.sch-enter__badge { padding: 4px 12px; border-radius: 999px; background: rgba(255,255,255,.18); font: 800 .75rem/1.4 system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.sch-enter i { font-size: 1.4rem; margin-top: 8px; }
.sch-hub__ribbon { margin: 0; padding: 10px 14px; border-radius: 14px; text-align: center; font: 800 .92rem/1.3 system-ui, sans-serif; color: #3b0764; background: linear-gradient(90deg, #fde68a, #fbcfe8 45%, #bfdbfe); }
html body .sch-hub__ribbon { color: #3b0764 !important; -webkit-text-fill-color: #3b0764 !important; }
.sch-hub--demo .sch-hub__hero { background: radial-gradient(120% 140% at 0% 0%, #f59e0b 0%, #7c3aed 32%, #0b2a6f 70%) !important; }
.sch-sa__nav { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 8px 10px; border-radius: 16px; background: #fff; border: 1px solid #dbe3f3; box-shadow: 0 6px 16px rgba(11, 42, 111, .06); }
html body .sch-sa__navbtn { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 8px 12px; border: 0; border-radius: 12px; background: #0b2a6f !important; color: #fff !important; -webkit-text-fill-color: #fff !important; font: 800 .82rem/1 system-ui, sans-serif; cursor: pointer; }
html body .sch-sa__navbtn:disabled { opacity: .38; cursor: default; background: #94a3b8 !important; }
.sch-sa__crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; min-width: 0; font: 650 .82rem/1.25 system-ui, sans-serif; color: #4b5d86; }
html body .sch-sa__crumbs strong { color: #0b2a6f !important; -webkit-text-fill-color: #0b2a6f !important; }
.sch-sa__crumbs i { font-size: .62rem; opacity: .5; }
.sch-fb__lead { margin: 0 0 10px; color: #6b4e16; font-weight: 600; }
.sch-alert--fb { background: linear-gradient(135deg, #b45309, #7c3aed 58%, #1d4ed8); box-shadow: 0 12px 28px rgba(124, 58, 237, .28); }
.sch-desk__note--fb { border-color: #f0dcb0; background: linear-gradient(180deg, #fffbeb, #fff); }
.sch-desk__notes .is-fb { background: #fff7ed; }
.sch-desk__banner--fb { background: linear-gradient(120deg, #b45309, #7c3aed 55%, #1d4ed8); box-shadow: 0 12px 28px rgba(124, 58, 237, .28); }
html body .sch-desk__banner--fb .sch-btn { background: #fff !important; color: #0b1f4d !important; -webkit-text-fill-color: #0b1f4d !important; margin-left: auto; }
.sch-desk__jumps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
html body .sch-desk__jumps button { display: grid; justify-items: start; gap: 2px; min-height: 88px; padding: 14px; border: 0; border-radius: 16px; text-align: left; cursor: pointer; color: #fff !important; -webkit-text-fill-color: #fff !important; box-shadow: 0 10px 22px rgba(15,23,42,.16); }
html body .sch-desk__jumps button b { font: 800 1.05rem/1.2 system-ui, sans-serif; color: #fff !important; -webkit-text-fill-color: #fff !important; }
html body .sch-desk__jumps button small { color: rgba(255,255,255,.88) !important; -webkit-text-fill-color: rgba(255,255,255,.88) !important; font-weight: 600; }
html body .sch-desk__jumps i { font-size: 1.2rem; }
.sch-desk__jumps button:nth-child(1) { background: linear-gradient(145deg, #fb7185, #be123c); }
.sch-desk__jumps button:nth-child(2) { background: linear-gradient(145deg, #fbbf24, #7c3aed); }
.sch-desk__jumps button:nth-child(3) { background: linear-gradient(145deg, #fbbf24, #c2410c); }
.sch-desk { display: grid; gap: 14px; }
.sch-desk__banner { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: 18px; color: #fff; background: linear-gradient(120deg, #e11d48, #f97316 70%, #facc15); box-shadow: 0 12px 28px rgba(225,29,72,.28); }
.sch-desk__banner i { font-size: 1.6rem; }
html body .sch-desk__banner strong { display: block; color: #fff !important; -webkit-text-fill-color: #fff !important; font: 800 1.15rem/1.2 system-ui, sans-serif; }
html body .sch-desk__banner span { color: #fff7ed !important; -webkit-text-fill-color: #fff7ed !important; font-weight: 600; }
.sch-desk__banner--ok { background: linear-gradient(120deg, #047857, #0f766e 60%, #0284c7); box-shadow: 0 12px 28px rgba(4,120,87,.25); }
.sch-desk__week { padding: 16px; border-radius: 18px; background: linear-gradient(180deg, #fff7ed, #fff); border: 1px solid #fed7aa; }
.sch-desk__week header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; align-items: center; }
.sch-desk__cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; margin-top: 10px; }
.sch-desk__hw { display: grid; gap: 6px; align-content: start; padding: 14px; border-radius: 16px; color: #fff; min-height: 150px; box-shadow: 0 8px 18px rgba(15,23,42,.12); }
.sch-desk__hw h4 { margin: 0; font-size: 1.05rem; }
.sch-desk__hw p { margin: 0; font-size: .82rem; opacity: .92; }
.sch-desk__hw .sch-btn { justify-self: start; margin-top: 6px; background: #fff !important; color: #0b1f4d !important; -webkit-text-fill-color: #0b1f4d !important; }
.sch-desk__hw--coral { background: linear-gradient(160deg, #fb7185, #e11d48); }
.sch-desk__hw--gold { background: linear-gradient(160deg, #fbbf24, #d97706); }
.sch-desk__hw--teal { background: linear-gradient(160deg, #2dd4bf, #0f766e); }
.sch-desk__hw--violet { background: linear-gradient(160deg, #a78bfa, #6d28d9); }
.sch-desk__hw--blue { background: linear-gradient(160deg, #60a5fa, #1d4ed8); }
html body .sch-desk__hw h4, html body .sch-desk__hw p, html body .sch-desk__pill { color: #fff !important; -webkit-text-fill-color: #fff !important; }
.sch-desk__pill { justify-self: start; padding: 3px 8px; border-radius: 999px; background: rgba(255,255,255,.22); font: 800 .72rem/1.2 system-ui, sans-serif; }
.sch-desk__empty, .sch-desk__wait { margin: 8px 0 0; color: #475569; font-weight: 600; }
.sch-desk__split { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sch-desk__note { background: linear-gradient(180deg, #fffbeb, #fff) !important; border: 1px solid #fde68a !important; }
html body .sch-desk__note strong { display: block; margin-top: 4px; color: #0b1f4d !important; -webkit-text-fill-color: #0b1f4d !important; font-size: 1.05rem; }
html body .sch-desk__note > p { margin: 2px 0 8px; color: #64748b !important; -webkit-text-fill-color: #64748b !important; }
.sch-desk__notes { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.sch-desk__notes li { display: grid; grid-template-columns: 22px 1fr auto; gap: 8px; align-items: center; padding: 8px 10px; border-radius: 12px; background: #fff; border: 1px solid #fde68a; }
.sch-desk__notes li.is-new { border-color: #f59e0b; background: #fff7ed; }
.sch-desk__notes i { color: #d97706; }
html body .sch-desk__notes button { min-height: 0; padding: 6px 10px; border: 0; border-radius: 999px; background: #0b2a6f; color: #fff !important; -webkit-text-fill-color: #fff !important; font: 700 .75rem system-ui, sans-serif; cursor: pointer; }
.sch-desk__chat { background: linear-gradient(180deg, #eff6ff, #fff) !important; border: 1px solid #bfdbfe !important; }
.sch-desk__lead { margin: 4px 0 8px; color: #475569; font-weight: 600; }
.sch-desk__thread { display: grid; gap: 8px; max-height: 280px; overflow: auto; padding: 4px 0 8px; }
.sch-desk__bubble { max-width: 92%; padding: 8px 12px; border-radius: 14px; }
.sch-desk__bubble small { display: block; font-weight: 800; font-size: .72rem; margin-bottom: 2px; }
.sch-desk__bubble p { margin: 0; }
.sch-desk__bubble--them { background: #0b2a6f; color: #fff; border-bottom-left-radius: 4px; }
html body .sch-desk__bubble--them small, html body .sch-desk__bubble--them p { color: #fff !important; -webkit-text-fill-color: #fff !important; }
.sch-desk__bubble--me { justify-self: end; background: #fef3c7; border: 1px solid #fcd34d; border-bottom-right-radius: 4px; }
html body .sch-desk__bubble--me small { color: #92400e !important; -webkit-text-fill-color: #92400e !important; }
html body .sch-desk__bubble--me p { color: #0b1f4d !important; -webkit-text-fill-color: #0b1f4d !important; }
.sch-desk__compose { display: flex; gap: 8px; margin-top: 8px; }
.sch-desk__compose input { flex: 1; min-width: 0; padding: 10px 12px; border-radius: 12px; border: 1px solid #bfdbfe; font: 600 .95rem system-ui, sans-serif; }
.sch-desk__play button:nth-child(1) { background: #e0e7ff !important; }
.sch-desk__play button:nth-child(2) { background: #ccfbf1 !important; }
.sch-desk__play button:nth-child(3) { background: #fef3c7 !important; }
.sch-desk__play button:nth-child(4) { background: #ffe4e6 !important; }
.ama-vault__desk { margin: 0 0 12px; }
@media (max-width: 800px) {
 .sch-desk__jumps { grid-template-columns: 1fr; }
 .sch-desk__split { grid-template-columns: 1fr; }
 .sch-desk__notes li { grid-template-columns: 22px 1fr; }
 .sch-desk__notes li button { grid-column: 2; justify-self: start; }
}
/* Team games open on top of every area. The page underneath stays still. */
html.ama-arena-open, html.ama-arena-open body { overflow: hidden !important; }
.ama-arena-fs {
 position: fixed; inset: 0; z-index: 13000; display: flex; flex-direction: column;
 overflow: auto; -webkit-overflow-scrolling: touch; background: #071433; color: #fff;
 padding: 16px 16px 28px;
}
.ama-arena-fs[hidden] { display: none !important; }
.ama-arena-fs .afs-top { display: flex; align-items: center; gap: 10px; }
.ama-arena-fs .afs-titles { flex: 1; min-width: 0; }
.ama-arena-fs .afs-titles p { margin: 0; letter-spacing: .12em; text-transform: uppercase; font-size: .75rem; opacity: .7; }
.ama-arena-fs .afs-titles h2 { margin: 0; font: 800 1.45rem/1.2 "Playfair Display", Georgia, serif; }
.ama-arena-fs .afs-close, .ama-arena-fs .afs-full {
 width: 44px; height: 44px; border: 0; border-radius: 999px; background: rgba(255,255,255,.14); color: #fff; cursor: pointer;
}
.ama-arena-fs .afs-setup, .ama-arena-fs .afs-card, .ama-arena-fs .afs-win {
 margin: 16px auto 0; width: min(760px, 100%); padding: 22px; border-radius: 20px; background: #fff; color: #0b1f4d;
}
.ama-arena-fs .afs-teams { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.ama-arena-fs .afs-team { border: 0; border-radius: 12px; padding: 8px 12px; background: #12224a; color: #fff; cursor: pointer; }
.ama-arena-fs .afs-team.is-turn { outline: 3px solid #facc15; }
.ama-arena-fs .afs-judge, .ama-arena-fs .afs-judge-extra, .ama-arena-fs .afs-choices, .ama-arena-fs .afs-names {
 display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px;
}
.ama-arena-fs .afs-btn, .ama-arena-fs .afs-choice, .ama-arena-fs .afs-mini {
 min-height: 48px; border: 0; border-radius: 14px; padding: 10px 14px; font-weight: 800; cursor: pointer;
}
.ama-arena-fs .afs-btn--well, .ama-arena-fs .afs-choice.is-good { background: #047857; color: #fff; }
.ama-arena-fs .afs-btn--oops, .ama-arena-fs .afs-choice.is-bad { background: #be123c; color: #fff; }
.ama-arena-fs .afs-btn--ghost, .ama-arena-fs .afs-mini, .ama-arena-fs .afs-choice { background: #e8eefc; color: #0b1f4d; }
.ama-arena-fs .afs-btn--xl { width: 100%; margin-top: 14px; background: #0b2a6f; color: #fff; }
.ama-arena-fs .afs-big { margin: 8px 0; font-size: clamp(1.8rem, 5vw, 3rem); }
.ama-arena-fs .afs-names input, .ama-arena-fs select { min-height: 44px; border-radius: 12px; border: 1px solid #c9d6f2; padding: 8px 10px; }
.ama-arena-fs .afs-stage { width: min(860px, 100%); margin: 0 auto; }
@media (max-width: 960px) {
 html:not(.ama-acc-open):not(.ama-qr-open):not(.lx-presenting):not(.ama-arena-open),
 html:not(.ama-acc-open):not(.ama-qr-open):not(.lx-presenting):not(.ama-arena-open) body:not(.game-overlay-open) {
 overflow-x: clip !important;
 overflow-y: auto !important;
 height: auto !important;
 max-height: none !important;
 touch-action: pan-y pinch-zoom;
 }
 #app-main { overflow-y: visible !important; }
}
@media (pointer: coarse) {
 * { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
}
.sch-tcorners--one { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.sch-tcorners__back { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 16px; border: 0; border-radius: 14px; background: #0b1f4d; color: #fff; font: 800 .95rem/1 system-ui, sans-serif; cursor: pointer; }
.sch-ielts-heroes { display: grid; gap: 10px; margin: 0 0 14px; }
@media (min-width: 820px) { .sch-ielts-heroes { grid-template-columns: 1fr 1fr; } }
.sch-ielts-hero { display: flex; align-items: center; gap: 16px; width: 100%; margin: 0; padding: 18px; border: 0; border-radius: 22px; text-align: left; cursor: pointer; color: #fff; background: linear-gradient(135deg, #7c3aed, #1d4ed8 55%, #0b1f4d); box-shadow: 0 14px 30px rgba(29,78,216,.28); }
.sch-ielts-hero--sun { background: linear-gradient(135deg, #0f766e, #1d4ed8 55%, #0b1f4d); box-shadow: 0 14px 30px rgba(15,118,110,.28); }
.sch-ielts-hero__ico { width: 72px; height: 72px; border-radius: 20px; display: grid; place-items: center; flex: 0 0 auto; background: #fff; color: #1d4ed8; font-size: 2rem; }
.sch-ielts-hero__txt { flex: 1; min-width: 0; display: grid; gap: 4px; }
.sch-ielts-hero strong { font: 800 1.45rem/1.1 "Playfair Display", Georgia, serif; }
.sch-ielts-hero small { font: 600 .95rem/1.35 system-ui, sans-serif; color: #e0e7ff; }
.sch-ielts-hero > i { font-size: 1.3rem; }
html body .sch-ielts-hero, html body .sch-ielts-hero strong, html body .sch-ielts-hero > i { color: #fff !important; -webkit-text-fill-color: #fff !important; }
html body .sch-ielts-hero small { color: #e0e7ff !important; -webkit-text-fill-color: #e0e7ff !important; }
html body .sch-ielts-hero__ico, html body .sch-ielts-hero__ico i { color: #1d4ed8 !important; -webkit-text-fill-color: #1d4ed8 !important; background: #fff !important; }
html body .sch-tcorners__back, html body .sch-tcorners__back i { color: #fff !important; -webkit-text-fill-color: #fff !important; }
.ama-arrive { position: fixed; z-index: 14000; left: 50%; top: 18px; transform: translateX(-50%); width: min(560px, calc(100% - 24px)); padding: 18px 18px 14px; border-radius: 20px; background: #fff; color: #0b1f4d; box-shadow: 0 18px 50px rgba(7,20,51,.35); border: 3px solid #7c3aed; }
.ama-arrive p { margin: 0; letter-spacing: .12em; text-transform: uppercase; font: 800 .75rem/1 system-ui, sans-serif; color: #7c3aed; }
.ama-arrive h3 { margin: 6px 36px 10px 0; font: 800 1.35rem/1.2 "Playfair Display", Georgia, serif; }
.ama-arrive ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ama-arrive li { display: grid; gap: 2px; padding: 8px 10px; border-radius: 12px; background: #f5f3ff; }
.ama-arrive li span, .ama-arrive li small { font-size: .88rem; color: #334155; }
.ama-arrive__x { position: absolute; top: 10px; right: 10px; width: 36px; height: 36px; border: 0; border-radius: 999px; background: #efe9ff; color: #0b1f4d; font-size: 1.3rem; cursor: pointer; }
html body .sch-tabs button.sch-tab--pay { background: #0b1f4d; color: #f7d77a; }
html body .sch-tabs button.sch-tab--pay.is-on { background: linear-gradient(135deg, #7c3aed, #1d4ed8); color: #fff; }
.sch-desk { display: grid; gap: 16px; }
.sch-desk__banner { padding: 18px 20px; border-radius: 18px; background: linear-gradient(135deg, #0b1f4d, #1d4ed8 58%, #7c3aed); color: #fff; }
html body .sch-desk__banner h3 { margin: 4px 0 8px; font: 800 1.55rem/1.15 "Playfair Display", Georgia, serif; color: #fff; }
html body .sch-desk__banner .sch-eyebrow { color: #f7d77a !important; letter-spacing: .14em; }
.sch-desk__banner p { margin: 0; max-width: 46rem; color: #e0e7ff; font: 600 .95rem/1.45 system-ui, sans-serif; }
.sch-desk__rooms { display: grid; gap: 12px; }
@media (min-width: 760px) { .sch-desk__rooms { grid-template-columns: 1fr 1fr; } }
.sch-desk__room { position: relative; z-index: 2; display: grid; gap: 6px; margin: 0; padding: 16px 18px; border: 0; border-radius: 16px; text-align: left; cursor: pointer; pointer-events: auto; color: #fff; background: #0b1f4d; box-shadow: 0 8px 20px rgba(11,31,77,.18); }
.sch-desk__room:hover, .sch-desk__room:focus { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(11,31,77,.28); }
.sch-desk__room--sun { background: #0f3d3a; }
html body .sch-desk__room strong, html body .sch-desk__room { color: #fff; }
.sch-desk__room strong { font: 800 1.15rem/1.2 "Playfair Display", Georgia, serif; }
.sch-desk__room small { color: #c7d2fe; font: 600 .88rem/1.35 system-ui, sans-serif; }
.sch-desk__room span { font: 800 .82rem/1 system-ui, sans-serif; color: #f7d77a; }
.sch-ielts-door {
 display: grid; gap: 10px; width: 100%; margin: 0; padding: 28px 26px;
 border: 0; border-radius: 22px; text-align: left; cursor: pointer; color: #fff;
 background: linear-gradient(135deg, #0b1f4d 0%, #1d4ed8 52%, #b45309 100%);
 box-shadow: 0 16px 36px rgba(11, 31, 77, .28);
}
.sch-ielts-door__kicker {
 font: 800 .78rem/1 system-ui, sans-serif; letter-spacing: .16em; text-transform: uppercase; color: #f7d77a;
}
html body .sch-ielts-door strong { font: 800 clamp(1.6rem, 3vw, 2.2rem)/1.1 "Playfair Display", Georgia, serif; color: #fff; }
.sch-ielts-door p { margin: 0; max-width: 38rem; color: #e0e7ff; font: 600 1rem/1.45 system-ui, sans-serif; }
.sch-ielts-door em { font: 800 .95rem/1 system-ui, sans-serif; color: #f7d77a; }
.sch-ielts-door--hw {
 background: linear-gradient(135deg, #1e1b4b 0%, #6d28d9 50%, #b45309 100%);
}
.sch-hwdesk { display: grid; gap: 16px; }
.sch-hwdesk__wait {
 margin: 0; padding: 12px 16px; border-radius: 14px;
 background: #fff7ed; color: #9a3412;
 font: 800 .95rem/1.3 system-ui, sans-serif;
}
.sch-hwdesk__card {
 display: grid; gap: 12px; padding: 16px 18px; border-radius: 18px;
 background: #fff; box-shadow: 0 8px 20px rgba(11, 31, 77, .08);
}
.sch-hwdesk__card header { display: grid; gap: 4px; }
html body .sch-hwdesk__card h3 {
 margin: 0; font: 800 1.2rem/1.2 "Playfair Display", Georgia, serif; color: #0b1f4d;
}
.sch-hwdesk__card header small { color: #64748b; font: 600 .88rem/1.35 system-ui, sans-serif; }
.sch-hwfb { font: 800 .82rem/1.25 system-ui, sans-serif; }
.sch-hwfb--sent { color: #047857; }
.sch-hwfb--wait { color: #b45309; }
.sch-hwfb--saved { color: #6d28d9; }
.sch-hwfb--redo { color: #b91c1c; }
.sch-hwfb--miss { color: #64748b; }
.sch-moved { display: grid; gap: 10px; padding: 6px 0 4px; max-width: 36rem; }
html body .sch-moved h3 { margin: 0; font: 800 1.35rem/1.2 "Playfair Display", Georgia, serif; color: #0b1f4d; }
.sch-ielts-back { margin-bottom: 4px; }
.sch-common { display: grid; gap: 10px; padding: 16px; border-radius: 18px; background: #f8fafc; border: 1px solid #e2e8f0; }
.sch-common header h4 { margin: 2px 0 0; font: 800 1.15rem/1.2 "Playfair Display", Georgia, serif; color: #0b1f4d; }
.sch-common__grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
.sch-common__tile {
 display: grid; gap: 4px; margin: 0; padding: 14px; border: 0; border-radius: 14px;
 background: #fff; text-align: left; cursor: pointer; box-shadow: 0 4px 12px rgba(15, 23, 42, .06);
}
.sch-common__tile i { color: #1d4ed8; }
html body .sch-common__tile strong { color: #0b1f4d; font: 800 .95rem/1.2 system-ui, sans-serif; }
.sch-common__tile small { color: #64748b; }
.sch-lab__games--compact { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.sch-lab__card--sm { min-height: 0; padding: 12px; }
.sch-lab__card--sm h5 { font-size: .95rem; }
.sch-mc__back { margin: 0 0 10px; }
.sch-pay { display: grid; gap: 16px; }
.sch-pay__lock { margin: 0; padding: 10px 12px; border-radius: 12px; background: #111827; color: #fde68a; font: 700 .82rem/1.4 system-ui, sans-serif; }
.sch-pay__head h3 { margin: 4px 0 8px; font: 800 1.6rem/1.15 "Playfair Display", Georgia, serif; color: #0b1f4d; }
.sch-pay__grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.sch-pay__card { display: grid; gap: 6px; padding: 16px; border-radius: 16px; background: #f8fafc; border: 1px solid #e2e8f0; }
.sch-pay__card h4 { margin: 0; font: 800 1.05rem/1.25 "Playfair Display", Georgia, serif; }
.sch-pay__card p, .sch-pay__card small { margin: 0; color: #475569; }
.sch-pay__card strong { color: #0b1f4d; font-size: 1.15rem; }
.sch-pay__tag { width: max-content; padding: 3px 8px; border-radius: 999px; background: #fef3c7; color: #92400e; font: 800 .7rem/1 system-ui, sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.sch-pay__card.is-bought { border-color: #86efac; background: #f0fdf4; }
.sch-pay__card em { font-style: normal; color: #047857; font-weight: 800; }
.sch-pay__methods { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.sch-pay__m { min-height: 52px; border: 1px solid #dbe3f4; border-radius: 12px; background: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; font: 700 .85rem system-ui, sans-serif; color: #0b1f4d; }
.sch-pay__m.is-on { border-color: #1d4ed8; background: #eff6ff; box-shadow: 0 0 0 2px #93c5fd; }
.sch-pay__form, .sch-pay__form label { display: grid; gap: 6px; }
.sch-pay__form input, .sch-ls__bar input, .sch-ls__stage input { min-height: 44px; border: 1px solid #c9d6f2; border-radius: 12px; padding: 8px 12px; font: 600 1rem system-ui, sans-serif; }
.sch-pay__row { display: grid; grid-template-columns: 1.6fr .7fr .5fr; gap: 8px; }
.sch-pay__row .is-wide { grid-column: 1 / -1; }
@media (min-width: 640px) { .sch-pay__row .is-wide { grid-column: auto; } }
.sch-pay__warn { margin: 0; padding: 10px 12px; border-radius: 12px; background: #fff7ed; color: #9a3412; font: 650 .9rem/1.4 system-ui, sans-serif; }
.sch-pay__qr { display: grid; place-items: center; gap: 6px; min-height: 160px; border-radius: 16px; background: #0b1f4d; color: #fff; }
.sch-pay__qr i { font-size: 4rem; }
.sch-pay__qr--live { background: #fff; color: #0b1f4d; border: 1px solid #e2e8f0; padding: 16px; }
.sch-pay__qr--live img { width: 240px; height: 240px; background: #fff; }
.sch-pay__qr--account { max-width: 340px; margin: 0 auto; padding: 8px 8px 16px; background: #0b2a24; }
.sch-pay__qr--account img { width: min(100%, 320px); height: auto; border-radius: 18px; }
.sch-pay__qr--account p, .sch-pay__qr--account small { color: #d1fae5; }
html body .sch-pay__qr--account strong { color: #fff; display: block; }
.sch-pay__qr--live strong { font: 800 1.2rem/1.2 ui-monospace, monospace; letter-spacing: .04em; }
.sch-pay__grid .sch-pay__card:first-child { border-color: #f7d77a; background: #fffbeb; }
.sch-ls__saved { font: 800 .78rem/1 system-ui, sans-serif; color: #64748b; }
.sch-ls__saved.is-on { color: #047857; }
.sch-ls-present { outline: none; }
.sch-ls-present__body ul, .sch-ls-present__body ol { font: 1.15rem/1.55 Georgia, serif; }
.sch-ls-present__body .ls-kicker { color: #f7d77a; font: 800 .85rem/1.3 system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.sch-pay--done { text-align: center; padding: 12px 0 8px; }
.sch-pay__ok { font-size: 3rem; color: #047857; }
.sch-pay__rcpt { display: grid; gap: 8px; text-align: left; margin: 0 auto; width: min(420px, 100%); }
.sch-pay__rcpt div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid #e2e8f0; }
.sch-pay__hist ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.sch-pay__hist li { display: grid; gap: 2px; padding: 10px 12px; border-radius: 12px; background: #f8fafc; }
.sch-ls { display: grid; gap: 12px; margin-top: 8px; }
.sch-ls__new, .sch-ls__bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.sch-ls__bar input { flex: 1 1 180px; }
.sch-ls__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.sch-ls__list li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; align-items: center; padding: 12px; border-radius: 14px; background: #f8fafc; }
.sch-ls__list strong { display: block; }
.sch-ls__ppt { display: grid; gap: 12px; }
@media (min-width: 860px) { .sch-ls__ppt { grid-template-columns: 200px 1fr; } }
.sch-ls__ppt aside { display: grid; gap: 6px; align-content: start; }
.sch-ls__ppt aside button { display: flex; gap: 8px; align-items: center; min-height: 42px; border: 0; border-radius: 10px; background: #eef2fa; cursor: pointer; text-align: left; padding: 8px 10px; }
.sch-ls__ppt aside button.is-on { background: #0b1f4d; color: #fff; }
.sch-ls__stage { display: grid; gap: 10px; padding: 16px; border-radius: 16px; background: #fff; border: 1px solid #e2e8f0; min-height: 280px; }
.sch-ls__edit, .sch-ls__paper { min-height: 220px; padding: 14px; border: 1px solid #c9d6f2; border-radius: 12px; background: #fff; overflow: auto; }
.sch-ls__paper { min-height: 420px; font: 1.05rem/1.6 Georgia, serif; }
.sch-ls-present { position: fixed; inset: 0; z-index: 16000; background: #0b1f4d; color: #fff; padding: 8vh 8vw; overflow: auto; }
.sch-ls-present h1 { font: 800 clamp(1.6rem, 4vw, 3rem)/1.15 "Playfair Display", Georgia, serif; }
.sch-ls-present__body { font: 1.2rem/1.6 Georgia, serif; max-width: 50rem; }
html.ama-ppt-open .ama-site-ticker,
html.ama-ppt-open .mobile-bottom-nav,
html.ama-ppt-open #ama-tv-fit,
html.ama-ppt-open .ama-arrive { display: none !important; }
.ama-ppt {
  position: fixed; inset: 0; z-index: 16000; background: #071a45; color: #0b1f4d;
  display: grid; place-items: center; outline: none;
}
.ama-ppt__stage {
  width: min(100vw, calc(100vh * 16 / 9));
  height: min(100vh, calc(100vw * 9 / 16));
  background: #eef3fb; overflow: hidden; position: relative;
  box-shadow: 0 18px 50px rgba(0,0,0,.4);
}
.ama-ppt__slide {
  position: relative; box-sizing: border-box;
  width: 100%; height: 100%; padding: 6.5% 7.5%;
  color: #0b1f4d; overflow: hidden;
}
.ama-ppt__x, .ama-ppt__chrome {
  position: absolute; z-index: 2; opacity: 0;
  transition: opacity .18s ease;
}
.ama-ppt:hover .ama-ppt__x, .ama-ppt:hover .ama-ppt__chrome,
.ama-ppt:focus-within .ama-ppt__x, .ama-ppt:focus-within .ama-ppt__chrome { opacity: 1; }
.ama-ppt__x {
  top: 14px; right: 16px; width: 40px; height: 40px; border: 0; border-radius: 999px;
  background: rgba(255,255,255,.92); color: #0b1f4d; font-size: 1.5rem; cursor: pointer;
}
.ama-ppt__chrome {
  bottom: 14px; right: 16px; display: flex; align-items: center; gap: 8px;
  padding: 6px 8px; border-radius: 12px; background: rgba(17,17,17,.78); color: #fff;
}
.ama-ppt__chrome span { font: 700 .82rem/1 system-ui, sans-serif; padding: 0 6px; }
.ama-ppt__chrome button {
  min-height: 34px; padding: 0 12px; border: 0; border-radius: 8px;
  background: #f7d77a; color: #0b1f4d; font: 800 .8rem/1 system-ui, sans-serif; cursor: pointer;
}
.ama-ppt__chrome button:disabled { opacity: .4; cursor: default; }
.ppt-center, .ppt-model, .ppt-pair, .ppt-cue {
  height: 100%; display: grid; align-content: center; justify-items: center; text-align: center;
}
.ppt-label {
  margin: 0 0 18px; color: #c9952a; letter-spacing: .16em; text-transform: uppercase;
  font: 800 .78rem/1 system-ui, sans-serif;
}
.ppt-word {
  margin: 0; color: #0b1f4d;
  font: 800 clamp(3.4rem, 10vw, 7rem)/1.05 "Playfair Display", Georgia, serif;
}
.ppt-soft { margin: 22px 0 8px; color: #64748b; font: 700 .95rem/1.3 system-ui, sans-serif; }
.ppt-avoid {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 16px;
  margin: 0; max-width: 36rem; color: #9a3412;
  font: 700 clamp(1.05rem, 2.1vw, 1.45rem)/1.3 Georgia, serif;
}
.ppt-avoid span {
  display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 999px;
  background: #fff1e8; border: 1px solid #f0c7b0;
}
.ppt-question {
  margin: 0; max-width: 18ch;
  font: 700 clamp(1.8rem, 4.4vw, 3.1rem)/1.25 "Playfair Display", Georgia, serif;
}
.ppt-question--sm { max-width: 36rem; font-size: clamp(1.2rem, 2.4vw, 1.8rem); }
.ppt-model, .ppt-pair, .ppt-cue { justify-items: stretch; text-align: left; }
.ppt-quote {
  margin: 18px 0 0; padding: 0; color: #1e293b;
  font: 1.28rem/1.65 Georgia, serif;
}
.ppt-heading {
  margin: 0 0 8px; text-align: left;
  font: 800 clamp(1.8rem, 3.4vw, 2.6rem)/1.15 "Playfair Display", Georgia, serif;
}
.ppt-scene { margin: 0 0 22px; color: #334155; font: 650 1.2rem/1.45 Georgia, serif; }
.ppt-two { display: grid; gap: 22px; }
@media (min-width: 800px) { .ppt-two { grid-template-columns: 1fr 1fr; gap: 32px; } }
.ppt-two > div { padding: 0; border: 0; background: none; }
.ppt-role {
  margin: 0 0 8px; color: #1d4ed8; letter-spacing: .08em; text-transform: uppercase;
  font: 800 .75rem/1 system-ui, sans-serif;
}
.ppt-two p { margin: 0; color: #1e293b; font: 1.05rem/1.5 Georgia, serif; }

.ppt-pair--lab {
  position: relative; height: 100%; align-content: start; gap: 0;
}
.ppt-pair--lab .ppt-heading { margin: 0 0 6px; }
.ppt-pair--lab .ppt-scene { margin: 0 0 18px; color: #3d4f73; }
.ppt-cast {
  display: grid; grid-template-columns: 1fr auto 1fr; gap: 14px; align-items: stretch;
}
.ppt-cast__vs {
  align-self: center; display: grid; place-items: center;
  width: clamp(42px, 5vw, 56px); height: clamp(42px, 5vw, 56px); border-radius: 50%;
  background: #f5c542; color: #0b1f4d;
  font: 800 .78rem/1 system-ui, sans-serif; letter-spacing: .08em;
  box-shadow: 0 8px 18px rgba(201,149,42,.35);
}
html body .ama-ppt .ppt-who {
  display: grid; justify-items: center; align-content: start; gap: 10px;
  min-height: 0; width: 100%; padding: 22px 18px 20px; border-radius: 22px;
  text-align: center; cursor: pointer;
  border: 2px solid transparent !important; box-shadow: 0 12px 28px rgba(11,31,77,.12) !important;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;
}
html body .ama-ppt .ppt-who--a {
  background: #0b2a6f !important; color: #fff !important;
}
html body .ama-ppt .ppt-who--b {
  background: #fff !important; color: #0b1f4d !important;
  border-color: #d7e2f5 !important;
}
html body .ama-ppt .ppt-who:hover { transform: translateY(-4px); }
html body .ama-ppt .ppt-who.is-on {
  border-color: #f5c542 !important;
  box-shadow: 0 0 0 4px rgba(245,197,66,.35), 0 16px 32px rgba(11,31,77,.18) !important;
}
.ppt-who__face {
  display: grid; place-items: center;
  width: clamp(58px, 7vw, 76px); height: clamp(58px, 7vw, 76px); border-radius: 50%;
  background: #f5c542; color: #0b1f4d; font-size: clamp(1.25rem, 2.2vw, 1.7rem);
}
.ppt-who__role {
  font: 800 clamp(1.15rem, 2.2vw, 1.55rem)/1.15 "Playfair Display", Georgia, serif;
}
.ppt-who__tap {
  color: #f5c542; font: 700 .78rem/1 system-ui, sans-serif; letter-spacing: .06em; text-transform: uppercase;
}
html body .ama-ppt .ppt-who--b .ppt-who__tap { color: #c9952a; }
.ppt-who__task {
  display: block; max-height: 0; overflow: hidden; opacity: 0;
  margin: 0; max-width: 28ch;
  font: 650 clamp(.95rem, 1.6vw, 1.12rem)/1.45 Georgia, serif;
  transition: max-height .35s ease, opacity .28s ease, margin .28s ease;
}
html body .ama-ppt .ppt-who--a .ppt-who__task { color: #e8eefc; }
html body .ama-ppt .ppt-who.is-on .ppt-who__tap { display: none; }
html body .ama-ppt .ppt-who.is-on .ppt-who__task {
  max-height: 180px; opacity: 1; margin-top: 4px;
}
.ppt-pair__hint {
  margin: 14px 0 0; text-align: center; color: #8a6400;
  font: italic .92rem/1.3 Georgia, serif;
}
@keyframes pptInUp { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes pptInL { from { opacity: 0; transform: translateX(-56px); } to { opacity: 1; transform: none; } }
@keyframes pptInR { from { opacity: 0; transform: translateX(56px); } to { opacity: 1; transform: none; } }
@keyframes pptPop { from { opacity: 0; transform: scale(.55); } to { opacity: 1; transform: scale(1); } }
.ppt-pair--lab .ppt-label { animation: pptInUp .45s ease both; }
.ppt-pair--lab .ppt-heading { animation: pptInUp .5s .08s ease both; }
.ppt-pair--lab .ppt-scene { animation: pptInUp .5s .14s ease both; }
.ppt-pair--lab .ppt-who--a { animation: pptInL .55s .2s ease both; }
.ppt-pair--lab .ppt-who--b { animation: pptInR .55s .26s ease both; }
.ppt-pair--lab .ppt-cast__vs { animation: pptPop .4s .38s ease both; }
.ppt-pair--lab .ppt-pair__hint { animation: pptInUp .45s .48s ease both; }
@media (max-width: 720px) {
  .ppt-cast { grid-template-columns: 1fr; gap: 10px; }
  .ppt-cast__vs { justify-self: center; width: 40px; height: 40px; }
}
.ppt-cue__task {
  margin: 0 0 16px;
  font: 800 clamp(1.4rem, 2.8vw, 2.1rem)/1.3 "Playfair Display", Georgia, serif;
}
.ppt-cue ul { margin: 6px 0 0; padding-left: 1.15em; font: 1.15rem/1.55 Georgia, serif; }
.ppt-hero {
  display: grid; align-content: center; gap: 10px;
  min-height: 220px; padding: 28px; border-radius: 12px;
  background: #0b1f4d; color: #fff;
}
.ama-ppt__slide .ppt-hero {
  position: absolute; inset: 0; border-radius: 0; min-height: 0; padding: 8%;
}
.ppt-brand {
  margin: 0; color: #f7d77a; letter-spacing: .18em; text-transform: uppercase;
  font: 800 .78rem/1 system-ui, sans-serif;
}
.ppt-title {
  margin: 8px 0 0; max-width: 12ch;
  font: 800 clamp(2.4rem, 7vw, 4.8rem)/1.08 "Playfair Display", Georgia, serif;
}
.ppt-sub { margin: 8px 0 0; color: #c7d2fe; font: 650 1.15rem/1.4 Georgia, serif; }
html body .ama-ppt__slide .ppt-hero .ppt-title,
html body .ama-ppt__slide .ppt-hero .ppt-sub,
html body .ama-ppt__slide .ppt-hero { color: #fff; }
.sch-ls-present__x { position: absolute; top: 16px; right: 16px; width: 44px; height: 44px; border: 0; border-radius: 999px; background: #fff; color: #0b1f4d; font-size: 1.6rem; cursor: pointer; }
.sch-ls-present__nav { display: flex; gap: 10px; margin-top: 28px; }
.sch-ls-present__nav button { min-height: 44px; padding: 0 18px; border: 0; border-radius: 12px; background: #f7d77a; color: #0b1f4d; font-weight: 800; cursor: pointer; }
.sch-pay__methods { grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: 10px; }
.sch-pay__m { min-height: 72px; justify-content: flex-start; padding: 10px 12px; gap: 10px; }
.sch-pay__m span { display: grid; gap: 2px; text-align: left; }
.sch-pay__m small { color: #64748b; font: 600 .72rem/1.2 system-ui, sans-serif; }
.sch-pay__logo {
  flex: 0 0 42px; width: 42px; height: 42px; border-radius: 10px; display: grid; place-items: center;
  color: #fff; font: 800 .62rem/1 system-ui, sans-serif; letter-spacing: .04em;
}
.sch-pay__logo--momo { background: #d82d8b; font-size: .58rem; }
.sch-pay__logo--zalo { background: #0068ff; }
.sch-pay__logo--vnpay { background: #005baa; }
.sch-pay__logo--vietqr { background: linear-gradient(135deg, #0b1f4d, #1d4ed8); }
.sch-pay__logo--vcb { background: #007a3d; }
.sch-pay__logo--visa { background: #1a1f71; letter-spacing: .12em; }
.sch-pay__logo--paypal { background: #003087; font-size: 1.1rem; }
.sch-pay__logo--apple { background: #111; font-size: 1.15rem; }
.sch-pay__logo--gpay { background: #fff; border: 1px solid #e2e8f0; color: #4285f4; font: 800 1.2rem/1 "Product Sans", system-ui, sans-serif; }
.sch-pay__logo--master { background: #1f1f1f; position: relative; overflow: hidden; }
.sch-pay__logo--master i { position: absolute; width: 16px; height: 16px; border-radius: 999px; top: 13px; }
.sch-pay__logo--master i:first-child { left: 8px; background: #eb001b; }
.sch-pay__logo--master i:last-child { right: 8px; background: #f79e1b; }
.sch-pay__card.is-pending { border-color: #fbbf24; background: #fffbeb; }
.sch-pay__card em.is-wait { color: #b45309; }
.sch-pay__ok--wait { color: #b45309; }
.sch-pay__account { display: grid; gap: 10px; }
.sch-pay__copyrow { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 10px 12px; border-radius: 12px; background: #f8fafc; }
.sch-pay__copyrow b { font: 800 1.05rem/1 ui-monospace, monospace; letter-spacing: .04em; }
.sch-pay__upload { padding: 12px; border-radius: 14px; background: #f8fafc; border: 1px dashed #94a3b8; }
.sch-pay__upload input { min-height: 40px; }
.sch-pay__upload em { color: #b45309; font-style: normal; font-weight: 700; }
.sch-pay__shot { width: min(280px, 100%); border-radius: 12px; border: 1px solid #e2e8f0; display: block; margin: 8px auto; }
.sch-pay__dest { display: grid; gap: 12px; padding: 16px; border-radius: 18px; background: #07211c; color: #fff; }
.sch-pay__destlock { margin: 0; padding: 8px 10px; border-radius: 10px; background: #f7d77a; color: #0b1f4d; font: 800 .82rem/1.3 system-ui, sans-serif; }
.sch-pay__who { margin: 0; display: grid; gap: 8px; }
.sch-pay__who div { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.sch-pay__who dt { color: #a7f3d0; font: 700 .78rem/1 system-ui, sans-serif; letter-spacing: .04em; text-transform: uppercase; }
html body .sch-pay__who dd { margin: 0 auto 0 0; color: #fff; font: 800 1.02rem/1.2 system-ui, sans-serif; }
.sch-pay__via { margin: 0; color: #d1fae5; font: 650 .92rem/1.45 system-ui, sans-serif; }