/* One viewport-bound workspace, with independent content and navigation scrolling.
 * Keep login in normal document flow; .hidden still hides the authenticated shell.
 * A focused field in a long editor must never scroll the entire shell offscreen.
 */
.studio-interface .app-shell {
  position: fixed;
  inset: 0;
  height: auto;
  min-height: 0;
  overflow: hidden;
}
.studio-interface .main {
  min-height: 0;
  overflow: auto;
  scroll-padding-block: 100px 24px;
}
.studio-interface .topbar { flex-shrink: 0; }
.studio-interface .page-content { flex: 1 0 auto; }
.studio-interface .sidebar { min-height: 0; }
.studio-interface .sidebar > :not(.sidebar-nav) { flex-shrink: 0; }

/* Feature checkboxes must not inherit full-width text-input layout. */
.studio-interface #content fieldset:has([data-school-feature]) { min-width: 0; margin-block: 20px; }
.studio-interface #content fieldset:has([data-school-feature]) > label {
  display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 12px;
}
.studio-interface #content fieldset:has([data-school-feature]) > p { color: var(--text-muted); margin-block: 8px; }
.studio-interface #content .form-group:has([data-school-feature]) {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center; gap: 12px 24px; padding-block: 18px;
  margin: 0; border-top: 1px solid var(--border);
}
.studio-interface #content .form-group:has([data-school-feature]) label {
  display: flex; align-items: center; gap: 12px; min-height: 44px;
  margin: 0; text-transform: none; letter-spacing: normal; cursor: pointer;
}
.studio-interface #content :is(input[data-school-feature], input[data-feature-lock]) {
  display: inline-block; flex: 0 0 20px; width: 20px; height: 20px;
  min-width: 20px; min-height: 20px; margin: 0; padding: 0;
  accent-color: var(--primary); cursor: pointer;
}
.studio-interface #content input[data-school-feature]:disabled { cursor: not-allowed; }
.studio-interface #content select[data-action="school-feature-preset"] { max-width: 100%; padding-inline: 12px; }
@media (max-width: 760px) {
  .studio-interface #content .form-group:has([data-school-feature]) { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

@media print {
  .studio-interface .app-shell { position: static; height: auto; overflow: visible; }
  .studio-interface .main { overflow: visible; }
  .studio-interface .topbar { position: static; }
}
