/* Figma classroom player 30:3 / 30:4. Scoped to the new classroom shell. */
.teaching-classroom-page.classroom-player-page {
  --cp-blue: #246beb;
  --cp-blue-soft: #edf4ff;
  --cp-ink: #182b46;
  --cp-muted: #65768d;
  --cp-line: #e5ebf3;
  --cp-surface: #f5f7fb;
  padding: 12px 24px 24px !important;
  background: #fff !important;
  color: var(--cp-ink);
  font: 14px/1.5 'Noto Sans SC', 'Microsoft YaHei', 'PingFang SC', sans-serif;
}
.classroom-player-page .cp-shell, .classroom-player-page .cp-shell * { box-sizing: border-box; }
.classroom-player-page .cp-shell { width: 100%; min-width: 0; }
.classroom-player-page .cp-header { display: flex; align-items: center; justify-content: space-between; min-height: 46px; margin-bottom: 12px; gap: 20px; }
.classroom-player-page .cp-header-main, .classroom-player-page .cp-header-actions { display: flex; align-items: center; gap: 22px; min-width: 0; }
.classroom-player-page .cp-header-main { flex: 1; }
.classroom-player-page .cp-header-actions { flex-shrink: 0; }
.classroom-player-page .cp-title { margin: 0; font-size: 24px; line-height: 1.4; font-weight: 700; color: var(--cp-ink); overflow-wrap: anywhere; }
.classroom-player-page .cp-subtitle { color: var(--cp-muted); font-size: 13px; }
.classroom-player-page .cp-status { padding: 5px 12px; background: var(--cp-surface); color: var(--cp-muted); font-size: 12px; border-radius: 6px; white-space: nowrap; }
.classroom-player-page .cp-status.teaching, .classroom-player-page .cp-status.creating { color: #087f8c; background: #e9f8f7; }
.classroom-player-page .cp-attendance-count { color: var(--cp-blue); white-space: nowrap; }
.classroom-player-page .cp-unit-select { width: 160px; }
.classroom-player-page .cp-unit-select .ant-select-selection { border-color: transparent; box-shadow: none; background: #fff; color: var(--cp-blue); }
.classroom-player-page .cp-workbench { display: grid; grid-template-columns: minmax(0, 1fr) 272px; gap: 24px; align-items: start; }
.classroom-player-page .cp-stage-column { min-width: 0; }
.classroom-player-page .cp-stage-card { border: 1px solid var(--cp-line); border-radius: 14px; overflow: hidden; background: #fff; }
.classroom-player-page .cp-player-shell { position: relative; display: flex; flex-direction: column; min-width: 0; }
.classroom-player-page .cp-stage-toolbar { display: flex; min-height: 52px; align-items: stretch; justify-content: space-between; padding: 0 16px; border-bottom: 1px solid var(--cp-line); gap: 12px; }
.classroom-player-page .cp-material-tabs, .classroom-player-page .cp-stage-actions { display: flex; align-items: center; min-width: 0; gap: 12px; }
.classroom-player-page .cp-stage-actions { gap: 20px; flex-shrink: 0; }
.classroom-player-page .cp-material-tabs button { align-self: stretch; min-height: 51px; padding: 0 14px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--cp-muted); font: inherit; white-space: nowrap; cursor: pointer; }
.classroom-player-page .cp-material-tabs button.active { color: var(--cp-blue); border-bottom-color: var(--cp-blue); font-weight: 500; }
.classroom-player-page .cp-material-tabs .anticon { font-size: 18px; margin-right: 6px; vertical-align: middle; }
.classroom-player-page .cp-player-viewport { padding: 12px 15px 4px; display: flex; justify-content: center; align-items: center; min-width: 0; background: #fff; }
.classroom-player-page .cp-stage-frame { width: 100%; position: relative; overflow: hidden; background: var(--cp-surface); border-radius: 4px; }
.classroom-player-page .cp-stage-frame.is-scratch-preview, .classroom-player-page .cp-stage-frame.is-scratchjr-preview { aspect-ratio: 4 / 3; }
.classroom-player-page .cp-stage-frame.is-doc-preview { height: max(520px, calc((100vw - 376px) * .5625)); max-height: 76vh; }
.classroom-player-page .cp-stage-frame.is-python-preview, .classroom-player-page .cp-stage-frame.is-cpp-preview { height: 640px; }
.classroom-player-page .cp-stage-frame iframe { display: block; width: 100%; height: 100%; position: absolute; inset: 0; border: 0; background: #fff; }
.classroom-player-page .cp-stage-empty { display: grid; place-items: center; min-height: 520px; width: 100%; }
.classroom-player-page .cp-annotation-canvas { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.classroom-player-page .cp-stage-frame.is-annotating .cp-annotation-canvas { pointer-events: auto; cursor: crosshair; touch-action: none; }
.classroom-player-page .cp-player-footer { display: flex; align-items: center; gap: 20px; min-height: 58px; padding: 9px 15px; border-top: 1px solid var(--cp-line); }
.classroom-player-page .cp-resource-title { color: var(--cp-muted); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.classroom-player-page .cp-page-controls { margin-left: auto; display: flex; align-items: center; gap: 18px; flex-shrink: 0; }
.classroom-player-page .cp-page-number { display: inline-flex; gap: 8px; align-items: center; margin: 0 12px 0 0; color: var(--cp-muted); white-space: nowrap; }
.classroom-player-page .cp-page-number input { padding: 0; border: 0; border-bottom: 1px solid transparent; width: 38px; height: 34px; color: var(--cp-ink); font-family: inherit; font-size: 17px; font-weight: 500; line-height: 1.5; text-align: center; appearance: textfield; background: transparent; }
.classroom-player-page .cp-page-number input::-webkit-inner-spin-button { appearance: none; }
.classroom-player-page .cp-page-number input:focus { outline: 0; border-bottom-color: var(--cp-blue); }
.classroom-player-page .cp-document-status { font-size: 12px; color: var(--cp-muted); }
.classroom-player-page .cp-ppt-select { max-width: 220px; min-width: 100px; }
.classroom-player-page button.cp-text-button, .classroom-player-page button.cp-soft-button, .classroom-player-page button.cp-primary-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 10px; padding: 9px 14px; min-height: 40px; font: 500 14px/1.5 'Noto Sans SC', 'Microsoft YaHei', sans-serif; white-space: nowrap; cursor: pointer; box-shadow: none; }
.classroom-player-page button.cp-text-button { background: transparent; color: var(--cp-muted); padding-inline: 5px; }
.classroom-player-page button.cp-text-button.active, .classroom-player-page button.cp-expand { color: var(--cp-blue); }
.classroom-player-page button.cp-soft-button { background: var(--cp-blue-soft); color: var(--cp-blue); padding-inline: 22px; }
.classroom-player-page button.cp-primary-button { background: var(--cp-blue); color: #fff; padding-inline: 28px; }
.classroom-player-page .cp-shell button:not(:disabled):hover { filter: brightness(.96); }
.classroom-player-page .cp-shell button:focus-visible { outline: 2px solid var(--cp-blue); outline-offset: 3px; }
.classroom-player-page .cp-shell button:disabled { cursor: not-allowed; opacity: .45; }
.classroom-player-page .cp-back { flex-shrink: 0; margin-right: 20px; }
.classroom-player-page .cp-pen-toolbar { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 3px 14px; min-height: 44px; border-top: 1px solid var(--cp-line); color: var(--cp-blue); background: #fff; }
.classroom-player-page button.cp-pen-color { border: 2px solid #fff; outline: 1px solid transparent; border-radius: 50%; width: 22px !important; height: 22px !important; min-width: 22px !important; min-height: 22px !important; max-width: 22px !important; max-height: 22px !important; flex: 0 0 22px; padding: 0 !important; cursor: pointer; }
.classroom-player-page button.cp-pen-color.active { outline-color: var(--cp-blue); }
.classroom-player-page .cp-inline-icon { width: 20px; height: 20px; display: inline-block; flex: 0 0 20px; }
.classroom-player-page .cp-tools { position: relative; padding: 20px; border: 1px solid var(--cp-line); border-radius: 14px; background: #fff; min-width: 0; }
.classroom-player-page .cp-tools h2 { margin: 0 0 20px; font-size: 18px; font-weight: 600; color: var(--cp-ink); }
.classroom-player-page .cp-tools .tool-section { margin: 0; }
.classroom-player-page .cp-tools .tool-section + .tool-section { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--cp-line); }
.classroom-player-page .cp-tools .cp-section-heading { display: block; margin: 0 0 10px; padding: 0; color: var(--cp-muted); font-size: 12px; font-weight: 400; letter-spacing: 0; }
.classroom-player-page .cp-tools .cp-section-heading:before, .classroom-player-page .cp-tools .cp-section-heading:after { display: none; }
.classroom-player-page .cp-tool-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.classroom-player-page button.cp-tool { border: 0; border-radius: 10px; min-height: 76px; padding: 12px 4px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; font: 500 13px/1.5 'Noto Sans SC', 'Microsoft YaHei', sans-serif; cursor: pointer; }
.classroom-player-page .cp-tool .anticon { font-size: 20px; }
.classroom-player-page .cp-orange { color: #ad6218; background: #fff3e3; }
.classroom-player-page .cp-purple { color: #7055cb; background: #f3efff; }
.classroom-player-page .cp-teal { color: #087f8c; background: #e9f8f7; }
.classroom-player-page .cp-blue { color: var(--cp-blue); background: var(--cp-blue-soft); }
.classroom-player-page .cp-muted { color: var(--cp-muted); background: var(--cp-surface); }
.classroom-player-page .cp-tool-links { display: flex; flex-direction: column; gap: 4px; }
.classroom-player-page .cp-tool-links button { display: flex; align-items: center; gap: 14px; padding: 12px 8px; width: 100%; border: 0; background: transparent; border-radius: 8px; color: var(--cp-ink); font: 500 14px/1.5 'Noto Sans SC', 'Microsoft YaHei', sans-serif; text-align: left; cursor: pointer; }
.classroom-player-page .cp-tool-links button .anticon:first-child { color: var(--cp-blue); font-size: 20px; }
.classroom-player-page .cp-tool-links button .anticon:last-child:not(:first-child) { margin-left: auto; color: var(--cp-muted); font-size: 12px; }
.classroom-player-page .cp-session-note { margin: 24px 0; border-radius: 10px; background: var(--cp-surface); padding: 10px 14px; color: var(--cp-muted); display: grid; gap: 3px; font-size: 12px; }
.classroom-player-page .cp-session-note strong { font-size: 13px; font-weight: 500; }
.classroom-player-page .cp-tools .live-create-button { height: 44px; margin: 0; border-radius: 10px; box-shadow: none; font-size: 14px; }
.classroom-player-page .cp-tools .live-create-button[disabled] { background: var(--cp-blue-soft); color: #85a8ef; border-color: transparent; }
.classroom-player-page .cp-attendance-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; border: 0; border-radius: 12px; padding: 12px 18px; background: var(--cp-surface); margin-top: 20px; box-shadow: none; }
.classroom-player-page .cp-attendance-strip .attendance-strip-head { display: flex; align-items: center; margin: 0; gap: 18px; }
.classroom-player-page .cp-attendance-strip .attendance-strip-head > div { display: grid; gap: 3px; }
.classroom-player-page .cp-attendance-strip .attendance-strip-head strong { color: var(--cp-muted); font-size: 12px; font-weight: 400; }
.classroom-player-page .cp-attendance-strip .attendance-strip-kicker { font-size: 14px; font-weight: 500; color: var(--cp-ink); }
.classroom-player-page .cp-attendance-strip .attendance-student-list { display: flex; gap: 10px; flex-wrap: wrap; }
.classroom-player-page .cp-attendance-strip .attendance-student-card { display: inline-flex; align-items: center; gap: 5px; width: auto; min-width: 36px; padding: 3px; border: 0; box-shadow: none; background: transparent; }
.classroom-player-page .cp-attendance-strip .attendance-student-card span:not(.ant-avatar) { color: var(--cp-muted); font-size: 12px; }
.classroom-player-page .cp-attendance-strip .attendance-student-card .ant-avatar { background: var(--cp-blue-soft); color: var(--cp-blue); }
.classroom-player-page .cp-interaction-panel { position: absolute; top: 100px; right: calc(100% + 16px); width: 300px; z-index: 5; border: 1px solid var(--cp-line); border-radius: 14px; padding: 18px; background: #fff; box-shadow: 0 12px 48px #182b4626; }
.classroom-player-page .cp-interaction-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.classroom-player-page .cp-interaction-heading strong { font-size: 16px; font-weight: 600; }
.classroom-player-page .cp-timer-digits { font-size: 58px; line-height: 1.5; text-align: center; font-weight: 500; font-variant-numeric: tabular-nums; color: #087f8c; padding: 14px 0; }
.classroom-player-page .cp-timer-digits.complete { color: #ad6218; }
.classroom-player-page .cp-timer-finished { text-align: center; color: #ad6218; }
.classroom-player-page .cp-timer-presets { display: flex; gap: 8px; }
.classroom-player-page .cp-timer-presets button { flex: 1; padding: 8px; border: 0; border-radius: 8px; background: var(--cp-surface); color: var(--cp-muted); cursor: pointer; }
.classroom-player-page .cp-timer-presets button.active { background: #e9f8f7; color: #087f8c; }
.classroom-player-page .cp-interaction-actions { display: flex; gap: 10px; margin-top: 20px; }
.classroom-player-page .cp-interaction-actions button { flex: 1; }
.classroom-player-page .cp-random-student { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 22px 0; }
.classroom-player-page .cp-random-student strong { font-size: 26px; color: #7055cb; }
.classroom-player-page .cp-random-student span:last-child { color: var(--cp-muted); font-size: 12px; }
.classroom-player-page .cp-full-width { width: 100%; }
/* Full-window mode keeps the exact iframe instance and the class tools alive. */
.teaching-classroom-page.classroom-player-page.is-expanded { position: fixed; inset: 0; z-index: 900; width: 100vw; height: 100vh; height: 100dvh; padding: 18px 24px 24px !important; overflow: auto; }
.classroom-player-page.is-expanded > .ant-spin-nested-loading, .classroom-player-page.is-expanded > .ant-spin-nested-loading > .ant-spin-container, .classroom-player-page.is-expanded .cp-shell { height: 100%; }
.classroom-player-page.is-expanded .cp-shell { display: flex; flex-direction: column; }
.classroom-player-page.is-expanded .cp-header { flex: 0 0 auto; margin-bottom: 16px; }
.classroom-player-page.is-expanded .cp-workbench { grid-template-columns: minmax(0, 1fr) 88px; gap: 16px; min-height: 0; flex: 1; }
.classroom-player-page.is-expanded .cp-stage-column, .classroom-player-page.is-expanded .cp-stage-card, .classroom-player-page.is-expanded .cp-player-shell { min-height: 0; height: 100%; }
.classroom-player-page.is-expanded .cp-player-viewport { flex: 1; min-height: 0; position: relative; }
.classroom-player-page.is-expanded .cp-stage-frame { height: 100%; max-height: none; }
.classroom-player-page.is-expanded .cp-stage-frame.is-scratch-preview, .classroom-player-page.is-expanded .cp-stage-frame.is-scratchjr-preview { width: auto; max-width: 100%; height: 100%; max-height: 100%; aspect-ratio: 4 / 3; }
.classroom-player-page.is-expanded .cp-stage-empty { min-height: 0; height: 100%; }
.classroom-player-page.is-expanded .cp-tools { padding: 8px; align-self: center; max-height: 100%; }
.classroom-player-page.is-expanded .cp-tools h2, .classroom-player-page.is-expanded .cp-tools .cp-section-heading, .classroom-player-page.is-expanded .cp-control-tool { display: none; }
.classroom-player-page.is-expanded .cp-tool-grid { grid-template-columns: 1fr; gap: 12px; }
.classroom-player-page.is-expanded .cp-tools .tool-section + .tool-section { border: 0; padding-top: 0; margin-top: 12px; }
.classroom-player-page.is-expanded button.cp-tool { min-height: 76px; }
.classroom-player-page.is-expanded .cp-interaction-panel { top: 0; }
@media (max-width: 1200px) {
  .classroom-player-page .cp-workbench { grid-template-columns: minmax(0, 1fr) 240px; gap: 16px; }
  .classroom-player-page .cp-header-main { flex-wrap: wrap; gap: 6px 16px; }
  .classroom-player-page .cp-subtitle { flex-basis: auto; }
  .classroom-player-page .cp-header-actions { gap: 12px; }
  .classroom-player-page .cp-stage-toolbar { flex-wrap: wrap; gap: 0; }
  .classroom-player-page .cp-stage-actions { margin-left: auto; min-height: 40px; }
  .classroom-player-page .cp-player-footer { flex-wrap: wrap; gap: 8px 16px; }
  .classroom-player-page .cp-page-controls { gap: 8px; }
  .classroom-player-page .cp-resource-title { display: none; }
}
@media (max-width: 900px) {
  .teaching-classroom-page.classroom-player-page { padding: 12px !important; }
  .classroom-player-page .cp-header { align-items: start; }
  .classroom-player-page .cp-header-main { gap: 8px; }
  .classroom-player-page .cp-header-actions { flex-direction: column; gap: 4px; }
  .classroom-player-page .cp-title { font-size: 20px; }
  .classroom-player-page .cp-back { margin-right: 0; }
  .classroom-player-page .cp-workbench { grid-template-columns: minmax(0, 1fr); }
  .classroom-player-page .cp-stage-frame.is-doc-preview { height: 60vh; min-height: 400px; }
  .classroom-player-page .cp-tools { display: flex; gap: 16px; flex-wrap: wrap; }
  .classroom-player-page .cp-tools h2 { width: 100%; margin: 0; }
  .classroom-player-page .cp-tools .tool-section { flex: 1; min-width: 160px; }
  .classroom-player-page .cp-tools .tool-section + .tool-section { margin: 0; padding: 0; border: 0; }
  .classroom-player-page .cp-session-note { margin: 0; flex: 1; }
  .classroom-player-page .cp-tools .live-create-button { width: 100%; }
  .classroom-player-page .cp-interaction-panel { position: fixed; top: 150px; right: 20px; max-width: calc(100vw - 40px); }
  .classroom-player-page.is-expanded .cp-workbench { grid-template-columns: minmax(0, 1fr) 72px; gap: 8px; }
  .classroom-player-page.is-expanded .cp-tools { display: block; padding: 5px; }
  .classroom-player-page.is-expanded .cp-tools .tool-section { min-width: 0; }
  .classroom-player-page.is-expanded .cp-tools .tool-section + .tool-section { margin-top: 8px; }
  .classroom-player-page.is-expanded .cp-tool-grid { gap: 8px; }
  .classroom-player-page.is-expanded button.cp-tool { min-height: 64px; font-size: 12px; padding: 8px 2px; gap: 6px; }
  .classroom-player-page.is-expanded .cp-stage-frame.is-doc-preview { min-height: 0; }
  .classroom-player-page.is-expanded .cp-interaction-panel { position: fixed; top: 90px; right: 100px; }
}
@media (max-width: 560px) {
  .classroom-player-page .cp-header { flex-wrap: wrap; gap: 10px; }
  .classroom-player-page .cp-header-actions { flex-direction: row; width: 100%; justify-content: space-between; }
  .classroom-player-page .cp-subtitle { width: 100%; }
  .classroom-player-page .cp-stage-toolbar { padding: 0 8px; }
  .classroom-player-page .cp-material-tabs { gap: 0; width: 100%; justify-content: space-between; }
  .classroom-player-page .cp-material-tabs button { padding-inline: 5px; font-size: 13px; }
  .classroom-player-page .cp-material-tabs .anticon { margin-right: 3px; font-size: 15px; }
  .classroom-player-page .cp-player-viewport { padding: 6px; }
  .classroom-player-page .cp-page-controls { width: 100%; justify-content: space-between; gap: 4px; }
  .classroom-player-page .cp-page-controls .cp-primary-button { padding-inline: 14px; }
  .classroom-player-page .cp-page-number { margin-right: 0; gap: 2px; }
  .classroom-player-page .cp-pen-toolbar { flex-wrap: wrap; gap: 9px; }
  .teaching-classroom-page.classroom-player-page.is-expanded { padding: 8px !important; }
  .classroom-player-page.is-expanded .cp-header .cp-subtitle, .classroom-player-page.is-expanded .cp-header .cp-status { display: none; }
  .classroom-player-page.is-expanded .cp-header-actions { width: auto; }
  .classroom-player-page.is-expanded .cp-workbench { grid-template-columns: minmax(0, 1fr) 62px; }
  .classroom-player-page.is-expanded .cp-material-tabs .anticon { display: none; }
  .classroom-player-page.is-expanded .cp-material-tabs button { font-size: 11px; padding-inline: 2px; }
  .classroom-player-page.is-expanded .cp-player-footer { padding: 5px; }
  .classroom-player-page.is-expanded .cp-page-controls button { font-size: 12px; padding-inline: 5px; }
  .classroom-player-page.is-expanded .cp-interaction-panel { right: 12px; }
}
@media (max-height: 740px) and (min-width: 901px) {
  .classroom-player-page.is-expanded button.cp-tool { min-height: 60px; gap: 5px; padding-block: 8px; }
  .classroom-player-page.is-expanded .cp-tool-grid { gap: 8px; }
  .classroom-player-page.is-expanded .cp-tools .tool-section + .tool-section { margin-top: 8px; }
}

/* Classroom dialogs: clear row lists, independent attendance and additive rewards. */
.cp-roster-dialog .ant-modal{max-width:calc(100vw - 32px);padding-bottom:24px}
.cp-roster-dialog .ant-modal-content{border-radius:18px;overflow:hidden;box-shadow:0 24px 80px #172f502b}
.cp-roster-dialog .ant-modal-header{padding:24px 28px 4px;border-bottom:0;background:#fff}
.cp-roster-dialog .ant-modal-title{font:600 23px/1.5 'Noto Sans SC','Microsoft YaHei',sans-serif;color:#182b46}
.cp-roster-dialog .ant-modal-close{width:56px;height:64px;color:#78899d}
.cp-roster-dialog .ant-modal-body{padding:0 28px 26px;background:#fff}
.cp-roster-dialog .cp-dialog-subtitle{margin:0 0 22px;color:#687c94;font-size:14px;line-height:1.7}
.cp-roster-dialog .cp-dialog-notice{display:flex;align-items:center;gap:9px;padding:13px 16px;border-radius:8px;background:#e9f8f7;color:#087f8c;font-size:13px;line-height:1.7}
.cp-roster-dialog .cp-dialog-notice.cp-gold{background:#fff3e3;color:#ad6218}
.cp-roster-dialog .cp-roster-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:22px 0 18px}
.cp-roster-dialog .cp-roster-toolbar>strong{font-size:16px;font-weight:600;color:#182b46;white-space:nowrap}
.cp-roster-dialog .cp-roster-toolbar>strong>span{font-weight:400;color:#718199;font-size:14px}
.cp-roster-dialog .cp-roster-filters{display:flex;align-items:center;gap:10px;min-width:0}
.cp-roster-dialog .cp-roster-filters .ant-input-affix-wrapper{width:210px}
.cp-roster-dialog .cp-roster-filters .ant-input{height:38px;border-color:#e4ebf4;border-radius:8px;background:#f7f9fc;font-size:13px}
.cp-roster-dialog .cp-roster-filters .ant-btn{height:38px;min-height:38px;border-radius:8px;color:#246beb;border-color:transparent;background:#edf4ff;white-space:nowrap;box-shadow:none}
.cp-roster-dialog .cp-roster-table{max-height:min(480px,55vh);overflow:auto;overscroll-behavior:contain}
.cp-roster-dialog .cp-roster-head,.cp-roster-dialog .cp-roster-row{display:grid;grid-template-columns:minmax(0,1fr) 112px 112px;gap:16px;align-items:center}
.cp-roster-dialog .cp-roster-head{position:sticky;top:0;z-index:1;padding:11px 16px;background:#f5f7fb;color:#76869b;font-size:12px}
.cp-roster-dialog .cp-roster-head>:last-child{text-align:center}
.cp-roster-dialog .cp-roster-row{min-height:76px;padding:13px 16px;border-bottom:1px solid #e8edf5;background:#fff}
.cp-roster-dialog .cp-roster-user{display:flex;align-items:center;gap:12px;min-width:0}
.cp-roster-dialog .cp-roster-user .ant-avatar{flex:0 0 36px;width:36px;height:36px;line-height:36px;color:#246beb;background:#edf4ff}
.cp-roster-dialog .cp-roster-user>div{min-width:0}
.cp-roster-dialog .cp-roster-user strong,.cp-roster-dialog .cp-roster-user span:not(.ant-avatar){display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp-roster-dialog .cp-roster-user strong{font-size:15px;font-weight:500;color:#182b46;line-height:1.7}
.cp-roster-dialog .cp-roster-user div>span{font-size:12px;color:#8291a4;line-height:1.6}
.cp-roster-dialog .cp-roster-status{display:inline-flex;align-items:center;gap:7px;color:#7a8ba1;font-size:13px;white-space:nowrap}
.cp-roster-dialog .cp-roster-status:before{content:'';width:7px;height:7px;border:1px solid #9bacc1;border-radius:50%;flex:none}
.cp-roster-dialog .cp-roster-status.complete{color:#087f8c}
.cp-roster-dialog .cp-roster-status.complete:before{border-color:#087f8c;background:#087f8c}
.cp-roster-dialog .cp-roster-action{display:flex;justify-content:center}
.cp-roster-dialog .cp-roster-action .ant-btn{width:106px;min-height:36px;height:36px;border:0;border-radius:8px;font-size:13px;color:#246beb;background:#edf4ff;box-shadow:none}
.cp-roster-dialog .cp-roster-action .ant-btn-primary{color:#fff;background:#246beb}
.cp-roster-dialog .cp-waiting-copy{color:#91a0b2;font-size:13px}
.cp-roster-dialog .cp-roster-footnote{font-size:12px;color:#8291a4;margin:20px 0 0}
.cp-reward-dialog .cp-reward-form{display:flex;flex-direction:column;margin-top:26px}
.cp-reward-dialog .cp-reward-form>label{font-size:14px;font-weight:500;color:#203954;margin-bottom:10px}
.cp-reward-dialog .cp-reward-form>.ant-select{width:100%;margin-bottom:24px}
.cp-reward-dialog .ant-select-selection--single{height:46px;border-radius:8px;border-color:#e3eaf3;background:#f7f9fc}
.cp-reward-dialog .ant-select-selection__rendered{line-height:44px}
.cp-reward-dialog .cp-reward-amount{display:flex;align-items:center;gap:16px;padding:12px 20px;border-radius:10px;background:#fff3e3}
.cp-reward-dialog .cp-reward-amount>.ant-input-number{flex:1;width:100%;height:48px;border:0;box-shadow:none;background:transparent}
.cp-reward-dialog .cp-reward-amount .ant-input-number-input{height:48px;color:#ad6218;font-size:30px;font-weight:600;padding:0}
.cp-reward-dialog .cp-reward-amount>span{color:#ad6218;font-size:14px}
.cp-reward-dialog .cp-reward-presets{display:flex;gap:10px;margin-top:14px}
.cp-reward-dialog .cp-reward-presets>button{flex:1;border:0;border-radius:8px;background:#edf4ff;color:#246beb;min-height:38px;font-family:inherit;font-size:14px;font-weight:500;line-height:1.5;cursor:pointer}
.cp-reward-dialog .cp-reward-presets>button.active{background:#246beb;color:#fff}
.cp-reward-dialog .cp-reward-presets>button:disabled{opacity:.5;cursor:wait}
.cp-reward-dialog .cp-reward-hint{font-size:12px;line-height:1.7;color:#7c8da3;margin:22px 0}
.cp-roster-dialog .cp-dialog-footer{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid #e8edf5;padding-top:20px}
.cp-roster-dialog .cp-dialog-footer .ant-btn{height:40px;min-height:40px;border-radius:8px;padding:0 20px}
/* The app's shared Ant controls use !important; keep overrides within these dialogs. */
.cp-roster-dialog .ant-modal .ant-btn{border-color:transparent!important;border-radius:8px!important;color:#246beb!important;background:#edf4ff!important;background-image:none!important;box-shadow:none!important}
.cp-roster-dialog .ant-modal .ant-btn:hover,.cp-roster-dialog .ant-modal .ant-btn:focus{border-color:transparent!important;color:#1b57c7!important;background:#dfeaff!important}
.cp-roster-dialog .ant-modal .ant-btn.ant-btn-primary{border-color:#246beb!important;color:#fff!important;background:#246beb!important}
.cp-roster-dialog .ant-modal .ant-btn.ant-btn-primary:hover,.cp-roster-dialog .ant-modal .ant-btn.ant-btn-primary:focus{border-color:#1b57c7!important;color:#fff!important;background:#1b57c7!important}
.cp-roster-dialog .ant-modal .ant-btn[disabled],.cp-roster-dialog .ant-modal .ant-btn[disabled]:hover,.cp-roster-dialog .ant-modal .ant-btn[disabled]:focus{border-color:transparent!important;color:#9aabc1!important;background:#f1f4f8!important}
.cp-roster-dialog .ant-modal .cp-roster-filters .ant-input{border-color:#e4ebf4!important;border-radius:8px!important;background:#f7f9fc!important;color:#182b46!important}
.cp-roster-dialog .ant-modal .cp-roster-filters .ant-input:focus{border-color:#9abdf9!important;box-shadow:0 0 0 2px #edf4ff!important}
.cp-roster-dialog.cp-reward-dialog .ant-modal .ant-select-selection{border-color:#e3eaf3!important;border-radius:8px!important;background:#f7f9fc!important;color:#182b46!important}
.cp-roster-dialog.cp-reward-dialog .ant-modal .ant-select-focused .ant-select-selection{border-color:#9abdf9!important;box-shadow:0 0 0 2px #edf4ff!important}
.cp-roster-dialog.cp-reward-dialog .ant-modal .cp-reward-amount .ant-input-number{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.cp-roster-dialog.cp-reward-dialog .ant-modal .cp-reward-amount .ant-input-number-input{color:#ad6218!important;background:transparent!important}
@media(max-width:600px){.cp-roster-dialog .ant-modal{max-width:calc(100vw - 16px);margin:0 auto;top:28px}.cp-roster-dialog .ant-modal-header{padding:18px 16px 4px}.cp-roster-dialog .ant-modal-body{padding:0 16px 18px}.cp-roster-dialog .cp-roster-toolbar{align-items:flex-start;flex-direction:column;gap:12px}.cp-roster-dialog .cp-roster-filters{width:100%}.cp-roster-dialog .cp-roster-filters .ant-input-affix-wrapper{flex:1;width:auto}.cp-roster-dialog .cp-roster-head,.cp-roster-dialog .cp-roster-row{grid-template-columns:minmax(0,1fr) 70px 80px;gap:8px;padding-left:6px;padding-right:6px}.cp-roster-dialog .cp-roster-user{gap:8px}.cp-roster-dialog .cp-roster-user .ant-avatar{display:none}.cp-roster-dialog .cp-roster-action .ant-btn{width:80px;padding:0 4px}.cp-roster-dialog .cp-roster-status{font-size:12px;gap:4px}.cp-roster-dialog .cp-roster-table{max-height:52vh}.cp-reward-dialog .cp-reward-presets{gap:6px}}
