:root {
  color-scheme: light;
  --text: #174669;
  --muted: #66869c;
  --line: rgba(40, 140, 210, 0.22);
  --blue: #168cff;
  --panel: rgba(255, 255, 255, 0.82);
  font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  color: var(--text);
  background:
    linear-gradient(rgba(230, 248, 255, 0.72), rgba(230, 248, 255, 0.86)),
    url("./assets/stage-control-bg.png") center / cover fixed;
}

button,
input {
  font: inherit;
}

button {
  min-height: 38px;
  padding: 0 14px;
  border: 0;
  border-radius: 6px;
  background: var(--blue);
  color: white;
  font-weight: 900;
  cursor: pointer;
}

input {
  height: 38px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--text);
}

.admin-shell {
  width: min(1120px, calc(100vw - 32px));
  margin: 0 auto;
  padding: 28px 0;
}

.admin-header,
.toolbar,
.actions,
.login-form,
.event-row,
.event-fields {
  display: flex;
  align-items: center;
}

.access-admin{margin-top:22px;padding-top:20px;border-top:2px solid var(--line)}.access-head{display:flex;align-items:end;justify-content:space-between;gap:16px}.access-head p{margin:0 0 4px;color:#168cff;font-size:11px;font-weight:900;letter-spacing:.12em}.access-head span{color:var(--muted);font-size:12px}.access-form{display:grid;grid-template-columns:1.1fr .8fr 1.5fr 1fr 1fr auto;gap:8px;align-items:end;margin-top:14px;padding:14px;background:rgba(224,246,255,.7);border:1px solid var(--line)}.access-form label{display:grid;gap:5px;color:var(--muted);font-size:11px}.access-form select{height:38px;border:1px solid var(--line);background:#fff}.access-form select[multiple]{min-height:78px;padding:5px;color:var(--text);border-radius:6px}.access-list{display:grid;gap:8px;margin-top:12px}.access-row{display:grid;grid-template-columns:1fr 1.5fr auto;gap:12px;align-items:center;padding:12px;background:#eefaff;border:1px solid var(--line)}.access-row.disabled{opacity:.48}.access-row strong,.access-row span{display:block}.access-row .role{margin-top:4px;color:#168cff;font-size:12px;font-weight:900}.access-meta{display:flex;gap:18px;color:var(--muted);font-size:11px}.access-row button{background:#e95466}.access-row button:disabled{background:#8193a1}.access-empty{color:var(--muted)}

.admin-header,
.toolbar {
  justify-content: space-between;
  gap: 16px;
}

.admin-header {
  margin-bottom: 16px;
}

.admin-header p,
.hint,
#statusText {
  margin: 0;
  color: var(--muted);
}

h1,
h2 {
  margin: 0;
}

h1 {
  font-size: clamp(34px, 5vw, 64px);
  font-family: "Songti SC", "STSong", SimSun, serif;
}

.admin-header a {
  display: inline-grid;
  min-height: 38px;
  place-items: center;
  padding: 0 14px;
  color: white;
  background: var(--blue);
  border-radius: 6px;
  text-decoration: none;
  font-weight: 900;
}

.panel {
  padding: 18px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
}

.hidden {
  display: none !important;
}

.login-form {
  gap: 10px;
  margin-top: 12px;
}

.login-form input {
  width: min(360px, 100%);
}

.hint {
  margin-top: 10px;
  font-size: 13px;
}

.actions {
  gap: 8px;
}

.event-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.event-row {
  gap: 10px;
  align-items: stretch;
  padding: 12px;
  background: linear-gradient(135deg, #eefaff, #c9efff);
  border: 1px solid var(--line);
  border-radius: 8px;
}

.event-fields {
  flex: 1;
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(120px, 0.6fr) 120px minmax(160px, 0.8fr);
  gap: 8px;
}

.event-row .buttons {
  display: flex;
  gap: 8px;
}

.delete-button {
  background: #ef5b6a;
}
.event-row .buttons a{display:grid;place-items:center;min-height:38px;padding:0 12px;color:#fff;background:#287998;border-radius:6px;text-decoration:none;font-size:12px;font-weight:900;white-space:nowrap}

@media (max-width: 860px) {
  .admin-header,
  .toolbar,
  .event-row {
    display: grid;
  }

  .event-fields {
    grid-template-columns: 1fr;
  }
  .access-form,.access-row{grid-template-columns:1fr}.access-meta{display:grid;gap:4px}
}

.access-actions{display:flex;gap:6px}.access-actions .edit-access{background:#168cff}.access-actions .toggle-access{background:#e95466}.access-actions button:disabled{background:#8193a1}

.event-fields{grid-template-columns:minmax(180px,1fr) minmax(120px,.6fr) 120px minmax(160px,.8fr) minmax(170px,.9fr)}.access-form{grid-template-columns:1.1fr .8fr 1fr 1fr auto}
.event-create-form{display:grid;grid-template-columns:auto 1.5fr 160px 1fr auto;gap:8px;align-items:center;margin-top:16px;padding:12px;background:#f4fcff;border:1px solid var(--line)}.event-create-form strong{color:var(--text);font-size:13px}.event-create-form input{width:100%}
@media(max-width:860px){.event-create-form{grid-template-columns:1fr}.event-create-form button{width:100%}}
.event-create-form{grid-template-columns:auto 1.2fr 1.6fr 160px 1fr auto}
 .event-module-config{grid-column:1/-1;padding:12px;background:rgba(255,255,255,.58);border:1px solid #8bcde0;border-radius:6px}
 .module-config-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px;color:#123c57;font-size:13px}
 .module-config-head span{font-size:11px;color:#557789}
 .module-config-fields{display:grid;grid-template-columns:180px 1fr 1.4fr;gap:8px}
 .module-config-fields textarea{min-height:80px;resize:vertical;font:12px ui-monospace,"Courier New",monospace}
 .module-config-steps{grid-column:1/2}.module-config-actions{grid-column:2/3}.module-config-script{grid-column:3/4}
 .save-module-button{margin-top:10px;background:#126497}.module-config-status{margin-left:10px;color:#15705d;font-size:12px}
 @media(max-width:860px){.module-config-fields{grid-template-columns:1fr}.module-config-steps,.module-config-actions,.module-config-script{grid-column:auto}.module-config-head{display:block}.module-config-head span{display:block;margin-top:4px}}
.stage-config-panel{grid-column:1/-1;padding:10px 12px;background:rgba(255,255,255,.65);border:1px solid #8bcde0}.stage-config-panel summary{cursor:pointer;color:#124d69;font-weight:800}.stage-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}.stage-config-grid label,.poster-upload-row label{display:grid;gap:4px;color:#486d7f;font-size:11px}.stage-config-grid textarea{resize:vertical}.poster-upload-row{display:flex;align-items:end;gap:8px;margin:10px 0}.poster-status{color:#15705d;font-size:12px}.save-stage-config,.upload-poster-button{background:#126497}@media(max-width:860px){.stage-config-grid{grid-template-columns:1fr}.poster-upload-row{display:grid;align-items:stretch}}

.program-sheet{margin-top:16px;padding:16px;background:#f4fcff;border:1px solid var(--line);border-radius:8px}.program-sheet-head{display:flex;justify-content:space-between;align-items:end;gap:14px}.program-sheet-head p{margin:0 0 4px;color:#168cff;font-size:11px;font-weight:900;letter-spacing:.1em}.program-sheet-head span{display:block;margin-top:5px;color:var(--muted);font-size:12px}.program-sheet-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.program-sheet-actions select{min-width:260px;height:38px;color:var(--text);background:#fff;border:1px solid var(--line)}.program-sheet-actions a{display:grid;place-items:center;min-height:38px;padding:0 12px;color:#fff;background:#526c7d;border-radius:6px;text-decoration:none;font-size:12px;font-weight:900}.workbook-upload{display:flex;align-items:end;gap:10px;margin-top:14px;padding:11px;background:#e6f7ff;border:1px solid var(--line)}.workbook-upload label{display:grid;gap:4px;color:var(--muted);font-size:11px}.workbook-upload input{height:auto;padding:6px;background:#fff}.workbook-upload>span{color:var(--muted);font-size:11px}.program-table-wrap{overflow:auto;margin-top:12px;border:1px solid var(--line);background:#fff}.program-table{width:100%;min-width:920px;border-collapse:collapse}.program-table th{padding:9px;color:#fff;background:#1b6fa8;font-size:11px;text-align:left}.program-table td{padding:6px;border-top:1px solid #c4e5f1}.program-table th:first-child,.program-table td:first-child{width:56px;text-align:center}.program-table input{width:100%;min-width:120px;height:36px;padding:0 8px;border:1px solid #b8dce9;background:#faffff}.program-table input:focus{border-color:#168cff;outline:2px solid rgba(22,140,255,.12)}.program-row-actions{display:flex;gap:4px;white-space:nowrap}.program-row-actions button{width:34px;height:34px;padding:0;background:#526c7d}.program-row-actions .remove-program{background:#e95466}@media(max-width:860px){.program-sheet-head,.workbook-upload{display:grid;align-items:stretch}.program-sheet-actions{justify-content:stretch}.program-sheet-actions select{min-width:100%;width:100%}.program-sheet-actions button,.program-sheet-actions a{flex:1}.workbook-upload button{width:100%}}

/* Integrated operations console. */
.admin-shell{width:min(1280px,calc(100vw - 32px))}.admin-header>div>span{display:block;margin-top:7px;color:var(--muted);font-size:13px}.manage-panel{padding:16px;background:rgba(255,255,255,.84);border:1px solid var(--line);border-radius:8px}.toolbar{padding-bottom:14px;border-bottom:1px solid var(--line)}.secondary{color:#31566c;background:#d8edf5}.danger{background:#d94c60}.admin-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:14px 0;padding:5px;background:#dceff6;border:1px solid var(--line)}.admin-tabs button{min-height:46px;color:#31566c;background:transparent;border-radius:4px}.admin-tabs button.is-active{color:#fff;background:#176fa9}.admin-view{min-height:360px}.overview-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.overview-stats>div{display:grid;gap:5px;min-height:76px;align-content:center;padding:13px 16px;background:#e8f7fc;border-left:4px solid #168cff}.overview-stats small{color:var(--muted)}.overview-stats strong{color:#174669;font-size:24px}.program-sheet,.access-admin{margin-top:0;padding-top:16px;border-top:0}.game-admin{padding:16px;background:#f4fcff;border:1px solid var(--line);border-radius:8px}.game-admin-head{display:flex;justify-content:space-between;align-items:end;gap:14px}.game-admin-head p{margin:0 0 4px;color:#168cff;font-size:11px;font-weight:900;letter-spacing:.1em}.game-admin-head h2{margin:0}.game-admin-head span{display:block;margin-top:5px;color:var(--muted);font-size:12px}.game-admin-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.game-admin-actions select{min-width:280px;height:38px;color:var(--text);background:#fff;border:1px solid var(--line)}.game-config-note{margin:14px 0;padding:11px 13px;color:#476c80;background:#e3f4fa;border-left:4px solid #168cff;font-size:12px;line-height:1.6}.game-config-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.game-config-group{padding:12px;background:#fff;border:1px solid #c7e3ec}.game-config-group h3{margin:0 0 8px;color:#174669;font-size:15px}.game-toggle{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;min-height:48px;padding:8px 6px;border-top:1px solid #e2eff4;cursor:pointer}.game-toggle:first-of-type{border-top:0}.game-toggle input{width:18px;height:18px}.game-toggle strong,.game-toggle small{display:block}.game-toggle strong{color:#174669;font-size:13px}.game-toggle small{margin-top:3px;color:var(--muted);font-size:10px}.game-status{padding:3px 6px;color:#27647f;background:#d9eef6;font-size:9px;font-weight:900;white-space:nowrap}.game-status.production{color:#136348;background:#d4f3e5}
.login-panel{width:min(620px,100%)}
@media(max-width:860px){.admin-tabs{grid-template-columns:repeat(2,1fr)}.overview-stats,.game-config-list{grid-template-columns:1fr}.game-admin-head,.game-admin-actions{display:grid;justify-content:stretch}.game-admin-actions select{min-width:100%;width:100%}}
