:root{color:#e6edf3;background:#0b1220;font-family:Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at top,#1f2d4a 0%,#0b1220 45%);min-height:100vh;margin:0}#root{min-height:100vh}.classroom-page{gap:1rem;padding:1.25rem;display:grid;position:relative}.card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a111ec2;border:1px solid #adc3e033;border-radius:12px;padding:1rem}.classroom-header h1{margin:0;font-size:1.45rem}.classroom-header p,.host-meta{color:#bdd0e5;margin:.45rem 0 0}.host-meta a{color:#8cc4ff}.security-banner{color:#ffdca8;align-items:center;gap:.75rem;display:flex}.warning-box{color:#ffdca8;border-color:#ffc06a99}.warning-box p{margin:0}.classroom-grid{grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:1rem;display:grid}.live-panel,.discussion-panel{min-height:460px}.panel-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.8rem;display:flex}.panel-header h2{margin:0;font-size:1.05rem}.status-pill{text-transform:capitalize;border-radius:999px;padding:.25rem .6rem;font-size:.78rem}.status-connected{color:#97f2b8;background:#173528}.join-session-state{text-align:center;color:#bdd0e5;place-content:center;gap:.7rem;min-height:390px;display:grid}.join-session-state button{color:#fff;cursor:pointer;background:linear-gradient(90deg,#4f9bff,#7e73ff);border:none;border-radius:8px;justify-self:center;padding:.55rem .9rem;font-weight:600}.member-live-column{gap:.8rem;display:grid}.waiting-instructor-state{color:#ffdca8;text-align:center;border-color:#ffc06a80}.waiting-instructor-state p{margin:0}.jitsi-stage{background:#040914;border:1px solid #5c709180;border-radius:10px;width:100%;height:390px;overflow:hidden}.hide-video-view .jitsi-stage{position:relative}.hide-video-view .jitsi-stage:after{content:"Instructor video hidden by member";color:#dce8ff;z-index:3;background:#000000eb;place-items:center;font-weight:600;display:grid;position:absolute;inset:0}.member-controls{flex-wrap:wrap;gap:.65rem;display:flex}.member-controls button{color:#ecf4ff;cursor:pointer;background:#12223d;border:1px solid #7c9dcb73;border-radius:8px;padding:.42rem .68rem}.control-note{color:#9eb6d8;margin:.7rem 0 0;font-size:.88rem}.discussion-panel{flex-direction:column;display:flex}.message-list{flex:1;gap:.75rem;padding-right:.25rem;display:grid;overflow:auto}.message-item{background:#0d1626cc;border:1px solid #7e96b752;border-radius:10px;padding:.65rem}.message-meta{color:#9ab2d4;justify-content:space-between;margin-bottom:.3rem;font-size:.85rem;display:flex}.message-item p{color:#dde8f6;margin:0;line-height:1.35}.message-composer{gap:.5rem;margin-top:.85rem;display:grid}.message-composer textarea{resize:vertical;color:#ecf4ff;background:#050d1b;border:1px solid #7791b88c;border-radius:8px;min-height:75px;padding:.65rem}.message-composer button{color:#fff;cursor:pointer;background:linear-gradient(90deg,#4f9bff,#7e73ff);border:none;border-radius:8px;padding:.55rem .8rem;font-weight:600}.message-composer button:disabled{opacity:.55;cursor:not-allowed}.watermark-layer{pointer-events:none;z-index:3;opacity:.11;transform-origin:50%;grid-template-columns:repeat(4,1fr);gap:1.4rem;padding:2rem;display:grid;position:fixed;inset:0;transform:rotate(-18deg)scale(1.15)}.watermark-layer span{color:#f5f8ff;text-wrap:nowrap;font-size:.86rem}@media (width<=1024px){.classroom-grid{grid-template-columns:1fr}.live-panel,.discussion-panel{min-height:unset}}.online-sessions-page{--os-bg:#0b1220;--os-panel:#0d1829;--os-border:#1a2744;--os-text:#e6edf3;--os-muted:#8b949e;--os-faint:#555;--os-divider:#2a3550;--os-accent:#4f9bff;--os-live:#97f2b8;--os-purple:#7e73ff}.online-sessions-page__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.online-sessions-page__title.ant-typography{color:var(--os-text);margin:0}.online-sessions-page__subtitle{color:var(--os-muted);font-size:13px}.online-sessions-page__btn-icon{align-items:center;gap:6px;display:flex}.online-sessions-page__btn-primary.ant-btn{background:var(--os-accent);border:none;font-weight:600}.online-sessions-page__tab-panel{padding-top:16px}.online-sessions-page__center{text-align:center;padding:40px}.online-sessions-page__center--sm{text-align:center;padding-bottom:12px}.online-sessions-page__pagination{justify-content:flex-end;margin-top:16px;display:flex}.online-sessions-page__tab-label{align-items:center;gap:6px;display:flex}.online-sessions-page__badge{color:var(--os-bg);border-radius:10px;padding:0 6px;font-size:10px;font-weight:700;line-height:16px}.online-sessions-page__badge--today{background:var(--os-live)}.online-sessions-page__badge--upcoming{background:var(--os-accent)}.session-card{background:var(--os-panel);border:1px solid var(--os-border);border-left:3px solid var(--status-dot,var(--os-faint));border-radius:10px;align-items:flex-start;gap:14px;margin-bottom:10px;padding:14px 18px;display:flex}.session-card__icon{background:color-mix(in srgb, var(--status-dot,var(--os-faint)) 9%, transparent);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.session-card__body{flex:1;min-width:0}.session-card__title.ant-typography{color:var(--os-text);font-size:14px;font-weight:700;display:block}.session-card__meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.session-card__meta-text{color:var(--os-muted);font-size:12px}.session-card__meta-sep{color:var(--os-divider);font-size:12px}.session-card__meta-duration{color:var(--os-faint);font-size:12px}.session-card__grade-tag.ant-tag{margin:0;font-size:10px}.session-card__status{margin-top:6px}.session-card__status-tag.ant-tag{font-size:11px}.session-card__join.ant-btn{color:var(--os-bg);border:none;flex-shrink:0;align-items:center;gap:4px;font-weight:700;display:flex}.session-card__join--live.ant-btn{background:var(--os-live)}.session-card__join--scheduled.ant-btn{background:var(--os-accent)}.sessions-empty{text-align:center;padding:48px 0}.sessions-empty__icon{opacity:.25;margin-bottom:12px;font-size:40px}.sessions-empty__text{color:var(--os-faint)}.live-create-panel{background:var(--os-panel);border:1px solid var(--os-border);border-radius:10px;margin-bottom:16px;padding:18px 20px}.live-create-panel__row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.live-create-panel__info{flex:1;min-width:260px}.live-create-panel__info-space{width:100%}.live-create-panel__meta-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.live-create-panel__label{color:var(--os-muted);font-size:12px}.live-create-panel__label--block{color:var(--os-muted);margin-bottom:4px;font-size:12px;display:block}.live-create-panel__name{color:var(--os-text)}.live-create-panel__mono{background:var(--os-bg);word-break:break-all;border-radius:4px;padding:4px 8px;font-family:monospace;font-size:12px}.live-create-panel__mono--room{color:var(--os-accent)}.live-create-panel__mono--link{color:var(--os-live);flex:1}.live-create-panel__link-row{align-items:center;gap:8px;display:flex}.live-create-panel__copy.ant-btn,.live-create-panel__actions{flex-shrink:0}.live-create-panel__action.ant-btn{justify-content:center;align-items:center;gap:6px;width:168px;font-weight:600;display:flex}.live-create-panel__action--start.ant-btn{background:linear-gradient(135deg, var(--os-accent), var(--os-purple));border:none}.live-create-panel__action--recording.ant-btn{color:#ff7e73;border-color:#ff7e73}.live-create-alert{margin-bottom:16px}.live-create-meeting{height:calc(100vh - 420px);min-height:500px}.sessions-tabs .ant-tabs-nav{margin-bottom:0!important}.sessions-tabs .ant-tabs-tab{color:var(--os-muted)!important;padding:10px 16px!important;font-size:13px!important}.sessions-tabs .ant-tabs-tab-active .ant-tabs-tab-btn{color:var(--os-text)!important}.sessions-tabs .ant-tabs-ink-bar{background:var(--os-accent)!important}.sessions-tabs .ant-tabs-nav-wrap{border-bottom:1px solid var(--os-border)!important}.sessions-tabs.ant-tabs .ant-tabs-nav{background:var(--os-bg)}.sessions-tabs .ant-pagination .ant-pagination-item a,.sessions-tabs .ant-pagination .ant-pagination-item-link{color:var(--os-muted)}.sessions-tabs .ant-pagination .ant-pagination-item-active{background:var(--os-border);border-color:var(--os-accent)}.sessions-tabs .ant-pagination .ant-pagination-item-active a{color:var(--os-accent)}.sessions-tabs .ant-pagination-total-text{color:var(--os-muted)}.student-class-calendar{--scc-bg:#0b1220;--scc-panel:#0d1829;--scc-border:#1a2744;--scc-text:#e6edf3;--scc-muted:#8b949e;--scc-faint:#555;--scc-dim:#3a4a60;--scc-accent:#4f9bff;--scc-live:#97f2b8}.student-class-calendar__header{align-items:center;gap:12px;margin-bottom:24px;display:flex}.student-class-calendar__title.ant-typography{color:var(--scc-text);margin:0}.student-class-calendar__subtitle{color:var(--scc-muted);font-size:13px}.student-class-calendar__layout{grid-template-columns:1fr 380px;align-items:start;gap:20px;display:grid}@media (width<=980px){.student-class-calendar__layout{grid-template-columns:1fr}}.student-class-calendar__cal-wrap{background:var(--scc-bg);border:1px solid var(--scc-border);border-radius:12px;overflow:hidden}.student-class-calendar__loading{text-align:center;padding:48px 0}.student-class-calendar__empty-panel{background:var(--scc-panel);border:1px dashed var(--scc-border);text-align:center;border-radius:12px;padding:48px 24px}.student-class-calendar__empty-text{color:var(--scc-dim);font-size:14px;display:block}.student-class-calendar__detail{background:var(--scc-panel);border:1px solid var(--scc-border);border-radius:12px;overflow:hidden}.student-class-calendar__detail-header{border-bottom:1px solid var(--scc-border);align-items:center;gap:12px;padding:18px 20px 14px;display:flex}.student-class-calendar__detail-icon{background:#4f9bff1f;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.student-class-calendar__detail-date{color:var(--scc-text);font-size:14px;font-weight:700;display:block}.student-class-calendar__detail-year{color:var(--scc-muted);font-size:12px}.student-class-calendar__detail-body{max-height:calc(100vh - 260px);padding:16px 20px 20px;overflow-y:auto}.student-class-calendar__none{text-align:center;padding:28px 8px}.student-class-calendar__none-text{color:var(--scc-dim);font-size:13px}.student-class-calendar__section-label{color:var(--scc-faint);letter-spacing:.4px;margin-bottom:10px;font-size:11px;display:block}.student-class-card{border:1px solid #4f9bff1f;border-left:3px solid var(--status-dot,var(--scc-accent));background:#4f9bff0f;border-radius:8px;margin-bottom:10px;padding:12px 14px}.student-class-card--live{background:#97f2b80f;border-color:#97f2b82e}.student-class-card__title{color:var(--scc-text);font-size:13px;font-weight:700;display:block}.student-class-card__meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.student-class-card__meta-text{color:var(--scc-muted);font-size:12px}.student-class-card__meta-sep{color:var(--scc-border);font-size:12px}.student-class-card__actions{gap:8px;margin-top:10px;display:flex}.student-class-card__join.ant-btn{background:var(--scc-accent);color:var(--scc-bg);border:none;font-weight:700}.student-class-card__join--live.ant-btn{background:var(--scc-live)}.student-class-pill{background:var(--pill-bg);color:var(--pill-color);border:1px solid var(--pill-border);text-overflow:ellipsis;white-space:nowrap;cursor:default;border-radius:3px;padding:0 4px;font-size:10px;line-height:16px;overflow:hidden}.student-class-pill-wrap{flex-direction:column;gap:2px;padding-bottom:4px;display:flex}.student-class-pill-more{color:var(--scc-faint);font-size:10px;line-height:14px}.student-schedule-calendar .ant-picker-calendar{background:#0b1220!important}.student-schedule-calendar .ant-picker-panel{background:#0b1220!important;border:none!important}.student-schedule-calendar .ant-picker-body{padding:0!important}.student-schedule-calendar .ant-picker-calendar-header{background:#0d1829!important;border-bottom:1px solid #1a2744!important;padding:12px 16px!important}.student-schedule-calendar .ant-picker-calendar-header .ant-radio-group{display:none}.student-schedule-calendar .ant-picker-content th{color:#555!important;background:#0b1220!important;border-bottom:1px solid #1a2744!important;padding:8px 0!important;font-size:12px!important}.student-schedule-calendar .ant-picker-cell{color:#555!important}.student-schedule-calendar .ant-picker-cell-in-view{color:#8b949e!important}.student-schedule-calendar .ant-picker-cell-in-view .ant-picker-cell-inner{color:#e6edf3!important}.student-schedule-calendar .ant-picker-cell-inner{vertical-align:top!important;border-radius:6px!important;min-height:72px!important;padding:4px 6px!important}.student-schedule-calendar .ant-picker-cell-selected .ant-picker-cell-inner{background:#4f9bff26!important}.student-schedule-calendar .ant-picker-cell-today .ant-picker-cell-inner:before{border:1px solid #4f9bff!important;border-radius:6px!important}.student-schedule-calendar .ant-picker-cell:hover .ant-picker-cell-inner{cursor:pointer;background:#0d1829!important}.student-schedule-calendar .ant-picker-calendar-date-value{font-size:13px!important;font-weight:600!important}.student-schedule-calendar .ant-picker-calendar-date-content{height:auto!important;overflow:visible!important}.student-schedule-calendar .ant-select-selector{color:#e6edf3!important;background:#0b1220!important;border-color:#1a2744!important}.student-schedule-calendar .ant-select-arrow{color:#555!important}
