:root{
  --ui-font:"Inter","SF Pro Display","PingFang SC","Microsoft YaHei",Arial,sans-serif;
  --ui-bg:#f3f6fa;
  --ui-surface:#fff;
  --ui-text:#172235;
  --ui-muted:#6f7f93;
  --ui-border:#dce4ed;
  --ui-blue:#1677d2;
  --ui-blue-hover:#0f69bd;
  --ui-radius:10px;
  --ui-shadow:0 5px 18px rgba(30,55,82,.06);
}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
[hidden]{display:none!important}
body,button,input,select,textarea,summary{font-family:var(--ui-font)}
body{background:var(--ui-bg);color:var(--ui-text);font-size:13px;line-height:1.5}
button,.action-menu>summary{min-height:36px;border-radius:7px;font-size:12px;font-weight:650;transition:border-color .15s,background .15s,color .15s,box-shadow .15s}
button:hover,.action-menu>summary:hover{border-color:#aebdce;background:#f8fafc}
button:focus-visible,.action-menu>summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #2f91ed;outline-offset:2px}
button.primary{background:var(--ui-blue);border-color:var(--ui-blue);color:#fff;box-shadow:0 3px 9px rgba(22,119,210,.16)}
button.primary:hover{background:var(--ui-blue-hover);border-color:var(--ui-blue-hover)}
input,select,textarea{border:1px solid #ced8e4;border-radius:7px;background:#fff;color:var(--ui-text);font-size:12px}
.view{padding:24px}
.panel,.playback-top,.novice-task{border-color:var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow)}
.panel-head{min-height:56px;padding:13px 15px}.panel-head h2{font-size:15px;line-height:1.3}.panel-head p{margin-top:4px;color:var(--ui-muted);font-size:10px;line-height:1.45}
.page-head,.playback-top{align-items:center;margin-bottom:16px}.page-head h1,.playback-top h1{color:#172235;font-size:24px;line-height:1.25;letter-spacing:-.02em}.page-head p,.playback-top p{color:var(--ui-muted);line-height:1.55}
.page-breadcrumb{margin:0 0 4px!important;color:#2178c8!important;font-size:10px!important;font-weight:800;letter-spacing:.05em}
.head-actions{align-items:center;flex-wrap:wrap;justify-content:flex-end}
.topbar{height:68px}.topbar .nav-item{border-radius:0}.topbar .nav-item b{font-size:15px;line-height:1.25}.topbar .nav-item small{margin-top:4px;color:#93a2b7;font-size:11px;line-height:1.25}.topbar .nav-item.active small{color:#e1efff}.projectbar{height:62px}
.tag{display:inline-flex;align-items:center;justify-content:center;min-height:25px;border-radius:999px;padding:4px 9px;font-weight:700}
.playback-top{display:grid;grid-template-columns:minmax(260px,1fr) auto auto auto;align-items:center;gap:18px;padding:15px 17px}
.playback-top>div{min-width:0}.playback-top h1{margin-bottom:7px}.rehearsal-control{display:flex;align-items:center;gap:6px}
.playback-quick-actions{display:flex;align-items:center;gap:7px}.playback-quick-actions button{white-space:nowrap}
.return-monitor-panel{padding-bottom:10px}.return-monitor-panel .panel-head{min-height:52px}.return-monitor-panel .panel-head .tag{font-size:9px}
.return-monitor-screen{position:relative;aspect-ratio:16/9;margin:10px;background:radial-gradient(circle at 50% 20%,#183a5d,#07111d 70%);border:1px solid #24364a;border-radius:7px;overflow:hidden;color:#fff}
.return-monitor-presenter{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:10px;text-align:center}.return-monitor-presenter small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#b8c8d8;font-size:9px}.return-monitor-presenter b{margin:5px 0 3px;color:#4be3a5;font-size:28px;line-height:1;font-variant-numeric:tabular-nums}.return-monitor-presenter span{color:#91a5ba;font-size:8px}.return-monitor-presenter p{width:100%;max-height:32px;margin:7px 0 0;padding:5px 6px;border-left:2px solid var(--ui-blue);overflow:hidden;background:#0d2237;color:#d5e0ea;font-size:8px;line-height:1.35;text-align:left}
.return-monitor-program{position:absolute;inset:0;display:grid;place-items:center;padding:9px;background:#07111d;text-align:center}.return-monitor-program[hidden],.return-monitor-presenter[hidden]{display:none}.return-monitor-program>div{max-width:100%}.return-monitor-program h2{margin:3px 0;font-size:13px;line-height:1.25}.return-monitor-program p,.return-monitor-program small{margin:0;color:#a9b9cd;font-size:8px}.return-monitor-program .program-kv{width:100%;height:100%;object-fit:contain}.return-monitor-program .generated-graphic{width:100%;height:100%;padding:12px;text-align:left}.return-monitor-program .generated-graphic b{font-size:11px}.return-monitor-program .graphic-photo{position:absolute;right:8px;bottom:8px;width:32px;height:32px;object-fit:cover;border-radius:50%}
.return-monitor-mode{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:5px;padding:0 10px}.return-monitor-mode select,.return-monitor-mode button{min-width:0;min-height:30px;padding:5px 6px;font-size:9px}
.cue-panel .panel-head h2{font-size:17px}.cue-panel .panel-head p{font-size:11px;line-height:1.55}
.program-cue-head{grid-template-columns:30px minmax(0,1fr) 84px;gap:10px;padding:14px 12px 12px}.program-cue-number{width:28px;height:28px;font-size:12px}
.program-cue-copy>b{font-size:14px;line-height:1.5}.program-cue-copy small{margin-top:5px;font-size:11px;line-height:1.55}.program-cue-copy .cue-people{font-size:12.5px;line-height:1.55;color:#33465d}.timing-status>span:first-child{font-size:11px}.timing-badge{min-width:72px;padding:4px 8px;font-size:10px}.program-step-list{margin:0 12px 11px 42px}.program-step{grid-template-columns:22px minmax(0,1fr);padding:7px 8px;font-size:10.5px;line-height:1.45}
.return-toolbar{min-height:58px;height:auto;gap:16px;padding:10px 18px}.return-toolbar-title,.return-toolbar>div{display:flex;align-items:center;gap:8px}.return-toolbar-title>span{font-weight:700}.return-toolbar button,.return-toolbar select{min-height:34px}
.return-view .return-screen{min-height:calc(100vh - 188px)}
.visual-studio-layout,.playback-layout,.review-layout,.control-layout{gap:14px}
.visual-head{align-items:center}.visual-head>.head-actions{max-width:70%}
.execution-live .playback-quick-actions #toggleExecutionMode{display:none}
.execution-live .playback-top{grid-template-columns:minmax(280px,1fr) auto auto}.execution-live .playback-quick-actions{justify-self:end}
@media(max-width:1250px){.playback-top{grid-template-columns:1fr auto auto}.playback-top .terminal-config{grid-column:1/3}.playback-quick-actions{grid-column:3;grid-row:1/3;flex-direction:column;align-items:stretch}.visual-head>.head-actions{max-width:60%}}
@media(max-width:1050px){.view{padding:18px}.page-head{align-items:flex-start}.playback-top{grid-template-columns:1fr auto}.playback-top .terminal-config{grid-column:1}.playback-quick-actions{grid-column:2;grid-row:1/3}.visual-head{display:block}.visual-head>.head-actions{max-width:none;margin-top:12px;justify-content:flex-start}}

/* 统一弹窗骨架：标题、关闭、内容滚动和底部操作保持相同位置。 */
dialog{
  max-width:calc(100vw - 32px);
  max-height:calc(100vh - 32px);
  margin:auto;
  padding:0;
  overflow:hidden;
  border:0;
  border-radius:12px;
  background:var(--ui-surface);
  color:var(--ui-text);
  box-shadow:0 28px 80px rgba(7,17,31,.4);
}
dialog::backdrop{background:rgba(7,17,31,.72);backdrop-filter:blur(2px)}
dialog>form{
  box-sizing:border-box;
  max-width:100%;
  max-height:calc(100vh - 32px);
  margin:0;
  overflow:auto;
  background:#f4f7fa;
}
dialog>form>header{
  position:sticky;
  top:0;
  z-index:20;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:20px;
  padding:18px 22px;
  border-bottom:1px solid var(--ui-border);
  background:#fff;
}
dialog>form>header>div{min-width:0}
dialog>form>header h2{margin:0 0 5px;font-size:20px;line-height:1.3}
dialog>form>header p{max-width:920px;margin:0;color:var(--ui-muted);font-size:11px;line-height:1.55}
dialog>form>header>button[value="cancel"]{
  align-self:start;
  min-width:64px;
  margin:0;
  padding:8px 12px;
  white-space:nowrap;
}
dialog>form>footer{
  position:sticky;
  bottom:0;
  z-index:18;
  background:#fff;
}
.meeting-guide-dialog{width:min(760px,calc(100vw - 32px))}
.meeting-guide-dialog>form{width:100%}
@media(max-width:720px){
  dialog{max-width:calc(100vw - 20px);max-height:calc(100vh - 20px)}
  dialog>form{max-height:calc(100vh - 20px)}
  dialog>form>header{gap:12px;padding:15px 16px}
  dialog>form>header h2{font-size:18px}
  dialog>form>header p{font-size:10px}
  dialog>form>header>button[value="cancel"]{min-width:56px;padding:7px 10px}
}
