.classrt-plugin .classrt-empty { padding: var(--app-space-8); text-align: center; color: var(--app-text-muted); border: 1px dashed var(--app-border); border-radius: var(--ui-radius); }
.classrt-plugin .classrt-course-list { display: grid; gap: var(--app-space-3); }
.classrt-plugin .classrt-course-card { display: flex; flex-wrap: wrap; align-items: center; gap: var(--app-space-4); padding: var(--app-space-4); border: 1px solid var(--app-border); border-radius: var(--ui-radius); background: var(--app-card-bg); }
.classrt-plugin .classrt-course-card:target { border-color: var(--app-accent); box-shadow: var(--app-shadow-soft); }
.classrt-plugin .classrt-course-main { display: flex; min-width: 0; flex: 1; align-items: center; justify-content: space-between; gap: var(--app-space-4); color: var(--app-text); text-decoration: none; }
.classrt-plugin .classrt-course-main h2 { margin: 0; font-size: var(--app-font-size-lg); }
.classrt-plugin .classrt-course-main p { margin: var(--app-space-1) 0 0; color: var(--app-text-muted); font-size: var(--app-font-size-sm); }
.classrt-plugin .classrt-course-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--app-space-2); }
.classrt-plugin .classrt-course-actions form { margin: 0; }
.classrt-plugin .classrt-summary-ready { display: block; margin-top: var(--app-space-2); color: var(--app-accent); font-size: var(--app-font-size-xs); }
.classrt-plugin .classrt-summary-error { flex: 0 0 100%; margin: calc(var(--app-space-2) * -1) 0 0; color: var(--app-danger); font-size: var(--app-font-size-sm); }
.classrt-plugin .classrt-share-action { flex: 0 0 auto; }
.classrt-plugin .classrt-status { display: inline-flex; flex: 0 0 auto; align-items: center; gap: var(--app-space-2); color: var(--app-text-muted); font-size: var(--app-font-size-sm); }
.classrt-plugin .classrt-status::before { width: .5rem; height: .5rem; border-radius: 999px; background: var(--app-text-soft); content: ""; }
.classrt-plugin .classrt-status[data-status="recording"]::before { background: var(--app-success); }
.classrt-plugin .classrt-status[data-status="finished"]::before { background: var(--app-accent); }

.classrt-plugin .classrt-create-dialog { width: min(34rem, calc(100vw - 2rem)); padding: 0; border: 1px solid var(--app-border); border-radius: var(--ui-radius); background: var(--app-bg-elevated); color: var(--app-text); box-shadow: var(--app-shadow-dialog); }
.classrt-plugin .classrt-create-dialog::backdrop { background: var(--app-backdrop); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.classrt-plugin .classrt-create-form > header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--app-space-4); padding: var(--app-space-5); border-bottom: 1px solid var(--app-border); }
.classrt-plugin .classrt-create-form h2 { margin: 0; font-size: var(--app-font-size-xl); }
.classrt-plugin .classrt-create-form header p { margin: var(--app-space-1) 0 0; color: var(--app-text-muted); font-size: var(--app-font-size-sm); }
.classrt-plugin .classrt-dialog-body { padding: var(--app-space-5); }
.classrt-plugin .classrt-create-form > footer { display: flex; justify-content: flex-end; gap: var(--app-space-2); padding: var(--app-space-4) var(--app-space-5); border-top: 1px solid var(--app-border); }
.classrt-plugin .classrt-dialog-close { width: 2rem; height: 2rem; padding: 0; border: 1px solid var(--app-border); border-radius: var(--ui-radius-sm); background: transparent; color: var(--app-text-muted); font-size: var(--app-font-size-xl); line-height: 1; }
.classrt-plugin .classrt-copy-helper { position: fixed; left: -9999px; top: 0; }

.classrt-plugin .classrt-course-header { display: flex; align-items: center; justify-content: space-between; gap: var(--app-space-4); padding-bottom: var(--app-space-6); }
.classrt-plugin .classrt-course-header h1 { margin: 0; font-size: var(--ui-title-size); }
.classrt-plugin .classrt-sponsorship-dialog { width: min(38rem, calc(100vw - 2rem)); padding: 0; border: 1px solid var(--app-border); border-radius: var(--ui-radius); background: var(--app-bg-elevated); color: var(--app-text); box-shadow: var(--app-shadow-dialog); }
.classrt-plugin .classrt-sponsorship-dialog::backdrop { background: var(--app-backdrop); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.classrt-plugin .classrt-sponsorship-content { position: relative; }
.classrt-plugin .classrt-sponsorship-content > header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--app-space-4); padding: var(--app-space-5); border-bottom: 1px solid var(--app-border); }
.classrt-plugin .classrt-sponsorship-content h2 { margin: 0; font-size: var(--app-font-size-xl); }
.classrt-plugin .classrt-sponsorship-content header p { max-width: 31rem; margin: var(--app-space-2) 0 0; color: var(--app-text-muted); font-size: var(--app-font-size-base); line-height: 1.7; }
.classrt-plugin .classrt-sponsorship-close { width: 2.75rem; height: 2.75rem; flex: 0 0 2.75rem; font-size: var(--app-font-size-2xl); }
.classrt-plugin .classrt-sponsorship-codes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--app-space-4); padding: var(--app-space-5); }
.classrt-plugin .classrt-sponsorship-code { min-width: 0; padding: var(--app-space-4); border: 2px solid; border-radius: var(--ui-radius); background: #fff; text-align: center; }
.classrt-plugin .classrt-sponsorship-alipay { border-color: #1677ff; color: #1677ff; }
.classrt-plugin .classrt-sponsorship-wechat { border-color: #07c160; color: #07c160; }
.classrt-plugin .classrt-sponsorship-code h3 { margin: 0 0 var(--app-space-3); font-size: var(--app-font-size-lg); }
.classrt-plugin .classrt-sponsorship-code p { margin: var(--app-space-2) 0 0; color: #495057; font-size: var(--app-font-size-sm); }
.classrt-plugin .classrt-qr { width: min(100%, 12rem); margin: 0 auto; }
.classrt-plugin .classrt-qr svg { display: block; width: 100%; height: auto; }
.classrt-plugin .classrt-qr-unavailable { display: grid; aspect-ratio: 1; place-items: center; border: 1px dashed currentColor; color: #6c757d; }
.classrt-plugin .classrt-sponsorship-content > footer { display: flex; justify-content: flex-end; gap: var(--app-space-2); padding: var(--app-space-4) var(--app-space-5); border-top: 1px solid var(--app-border); }
.classrt-plugin .classrt-sponsorship-thanks { position: absolute; inset: 0; display: grid; place-content: center; gap: var(--app-space-2); padding: var(--app-space-6); background: var(--app-bg-elevated); color: var(--app-text); text-align: center; }
.classrt-plugin .classrt-sponsorship-thanks[hidden] { display: none; }
.classrt-plugin .classrt-sponsorship-thanks strong { color: var(--app-success); font-size: var(--app-font-size-2xl); }
.classrt-plugin .classrt-sponsorship-thanks span { color: var(--app-text-muted); font-size: var(--app-font-size-base); }
.classrt-plugin .classrt-waiting { display: grid; min-height: 45vh; place-items: center; align-content: center; gap: var(--app-space-4); text-align: center; }
.classrt-plugin .classrt-waiting h2 { margin: 0; color: var(--app-text-muted); font-size: var(--app-font-size-xl); font-weight: 500; }
.classrt-plugin .classrt-waiting-dot { width: .75rem; height: .75rem; border-radius: 999px; background: var(--app-text-soft); }
.classrt-plugin .classrt-stream-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: var(--ui-content-gap); }
.classrt-plugin .classrt-stream-grid > section > h2,
.classrt-plugin .classrt-final > h2 { margin: 0 0 var(--app-space-4); font-size: var(--app-font-size-xl); }
.classrt-plugin .classrt-current-caption { display: grid; gap: var(--app-space-2); margin-bottom: var(--app-space-3); padding: var(--app-space-4); border: 1px solid var(--app-border); border-radius: var(--ui-radius); background: var(--app-bg-elevated); }
.classrt-plugin .classrt-current-caption small { color: var(--app-text-soft); font-size: var(--app-font-size-xs); }
.classrt-plugin .classrt-current-caption p { margin: 0; font-size: var(--app-font-size-lg); font-weight: 700; line-height: 1.55; }
.classrt-plugin .classrt-current-caption p + p { color: var(--app-accent); }
.classrt-plugin .classrt-stream-list,
.classrt-plugin .classrt-final-list { display: grid; gap: var(--app-space-3); }
.classrt-plugin .classrt-stream-item { padding: var(--app-space-4); border: 1px solid var(--app-border); border-radius: var(--ui-radius); background: var(--app-card-bg); }
.classrt-plugin .classrt-stream-item time { display: block; margin-bottom: var(--app-space-2); color: var(--app-text-soft); font-size: var(--app-font-size-xs); }
.classrt-plugin .classrt-stream-item p { margin: 0; font-size: var(--app-font-size-base); line-height: 1.65; }
.classrt-plugin .classrt-stream-item p + p { margin-top: var(--app-space-2); color: var(--app-accent); }
.classrt-plugin .classrt-final { max-width: 56rem; margin: 0 auto; }
.classrt-plugin .classrt-summary { max-width: 64rem; margin: var(--app-space-8) auto 0; padding: clamp(var(--app-space-4), 4vw, var(--app-space-8)); border: 1px solid var(--app-border); border-radius: var(--ui-radius); background: var(--app-card-bg); box-shadow: var(--app-shadow-soft); }
.classrt-plugin .classrt-summary-pending h2 { margin: 0 0 var(--app-space-3); font-size: var(--app-font-size-xl); }
.classrt-plugin .classrt-summary-pending p { display: flex; align-items: center; gap: var(--app-space-2); margin: 0; color: var(--app-text-muted); }
.classrt-plugin .classrt-summary-spinner { width: .85rem; height: .85rem; border: 2px solid var(--app-border); border-top-color: var(--app-accent); border-radius: 50%; animation: classrt-spin .8s linear infinite; }
.classrt-plugin .classrt-summary-content { color: var(--app-text); font-size: var(--app-font-size-base); line-height: 1.75; }
.classrt-plugin .classrt-summary-content > :first-child { margin-top: 0; }
.classrt-plugin .classrt-summary-content > :last-child { margin-bottom: 0; }
.classrt-plugin .classrt-summary-content h1 { margin: 0 0 var(--app-space-6); font-size: var(--app-font-size-2xl); }
.classrt-plugin .classrt-summary-content h2 { margin: var(--app-space-8) 0 var(--app-space-3); padding-bottom: var(--app-space-2); border-bottom: 1px solid var(--app-border); font-size: var(--app-font-size-xl); }
.classrt-plugin .classrt-summary-content h3 { margin: var(--app-space-6) 0 var(--app-space-2); font-size: var(--app-font-size-lg); }
.classrt-plugin .classrt-summary-content blockquote { margin: var(--app-space-4) 0; padding: var(--app-space-3) var(--app-space-4); border-left: 3px solid var(--app-accent); background: var(--app-bg-elevated); color: var(--app-text-muted); }
.classrt-plugin .classrt-summary-content table { display: block; width: 100%; overflow-x: auto; border-collapse: collapse; }
.classrt-plugin .classrt-summary-content th,
.classrt-plugin .classrt-summary-content td { min-width: 8rem; padding: var(--app-space-2) var(--app-space-3); border: 1px solid var(--app-border); text-align: left; vertical-align: top; }
.classrt-plugin .classrt-summary-content th { background: var(--app-bg-elevated); }
@keyframes classrt-spin { to { transform: rotate(360deg); } }

@media (max-width: 768px) {
  .classrt-plugin .plugin-page-header { align-items: flex-start; }
  .classrt-plugin .classrt-course-card { align-items: stretch; flex-direction: column; }
  .classrt-plugin .classrt-course-main { align-items: flex-start; }
  .classrt-plugin .classrt-course-actions { justify-content: flex-start; }
  .classrt-plugin .classrt-share-action { align-self: flex-start; }
  .classrt-plugin .classrt-course-header { align-items: flex-start; padding-bottom: var(--app-space-4); }
  .classrt-plugin .classrt-course-header h1 { font-size: var(--app-font-size-2xl); }
  .classrt-plugin .classrt-course-header .btn { max-width: 10rem; white-space: normal; }
  .classrt-plugin .classrt-sponsorship-codes { gap: var(--app-space-2); padding: var(--app-space-3); }
  .classrt-plugin .classrt-sponsorship-code { padding: var(--app-space-2); }
  .classrt-plugin .classrt-stream-grid { height: max(20rem, calc(100dvh - 11rem)); max-height: calc(100dvh - 11rem); grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) minmax(0, 1fr); overflow: hidden; }
  .classrt-plugin .classrt-stream-grid > section { display: flex; min-height: 0; flex-direction: column; overflow: hidden; }
  .classrt-plugin .classrt-stream-grid > section + section { margin-top: 0; }
  .classrt-plugin .classrt-stream-grid > section > h2 { flex: 0 0 auto; margin-bottom: var(--app-space-2); }
  .classrt-plugin .classrt-current-caption { max-height: 42%; flex: 0 0 auto; overflow-y: auto; }
  .classrt-plugin .classrt-stream-list { min-height: 0; flex: 1; overflow-y: auto; overscroll-behavior: contain; }
  .classrt-plugin .classrt-current-caption,
  .classrt-plugin .classrt-stream-item { padding: var(--app-space-3); }
}
