/* Shared workspace rhythm. Page frames stretch; prose alone has a reading measure. */
:root {
  --workspace-gap: 32px;
  --panel-padding: 28px;
  --heading-gap: 12px;
  --content-gap: 20px;
  --support-width: 320px;
}
#stage > :is(.page, .operations-page):not(.auth) {
  width: 100%; max-width: none; margin-inline: 0; gap: var(--workspace-gap);
  text-align: left; align-items: stretch;
}
#stage :is(.page-head, .operations-heading) {
  padding: var(--panel-padding); margin: 0; gap: var(--heading-gap);
  background: var(--bg-1); border: 1px solid var(--line); border-radius: var(--r-3);
  box-shadow: var(--shadow-1); text-align: left;
}
#stage .operations-heading { display: flex; flex-direction: column; align-items: flex-start; }
#stage :is(.page-head, .operations-heading) h1 {
  margin: 0; font-size: 36px; font-weight: 720; line-height: 1.2; letter-spacing: -.035em;
}
#stage :is(.page-head, .operations-heading) :is(.page-lede, .workshop-meta, .welcome-eyebrow) { margin: 0; }
#stage .page-lede { max-width: 78ch; font-size: 16px; line-height: 1.6; }
.settings-head-text { gap: var(--heading-gap); }
.today-header > div:first-child { display: grid; gap: var(--heading-gap); }
#stage :is(.card:not(.day-card), .form-section, .ops-panel, .workshop-panel) { gap: var(--content-gap); }
#stage .card-head { gap: var(--heading-gap); }
#stage :is(.card:not(.day-card), .form-section, .ops-section, .day-order, .lab-panel, .workshop-panel) {
  padding: var(--panel-padding); border-radius: var(--r-3);
}
#stage :is(.card-title, .form-section-title, .ops-section > h2, .ops-section > header h2, .lab-panel h2, .day-order h2, .workshop-panel-title, .brief-sources > h2, .brief-check > h2) {
  font-size: 22px; font-weight: 650; line-height: 1.35; letter-spacing: -.025em; margin-top: 0;
}
#stage :is(.ops-section > h2, .brief-sources > h2) { margin-bottom: var(--content-gap); }
#stage :is(.ops-section > h3, .lab-panel h3, .day-order h3) { font-size: 18px; font-weight: 650; line-height: 1.4; }
.today-layout, .today-main, .today-side, .today .day-card-orders,
.day-orders, .ops-columns, .settings-layout, .settings-sections, .workshop-body { gap: var(--workspace-gap); }
.settings-layout { grid-template-columns: 200px minmax(0, 1fr); }
.settings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--content-gap); }
.workshop-panel, .brief-check { width: 100%; max-width: none; }
.brief-check { margin-top: 0; }
.lab-page > * { margin-bottom: 0; }
.lab-workspace { display: grid; gap: var(--workspace-gap); }
.lab-steps, .lab-deliverables { margin-bottom: var(--workspace-gap); }
.brief-reader .prose { justify-content: start; padding: var(--panel-padding); }
.brief-reader .prose > * { margin-inline: 0; }
.brief-reader .prose h3 { font-size: 24px; margin-top: var(--workspace-gap); }
.brief-reader .prose h4 { font-size: 20px; margin-top: 24px; }
.brief-reader .prose h3 + *, .brief-reader .prose h4 + * { margin-top: var(--heading-gap); }
.brief-sources { margin-top: var(--workspace-gap); }
.brief-outline-panel { top: 0; padding: var(--panel-padding); }
.today .timeline, .today .work-order { padding: var(--panel-padding); }
.today .timeline, .today .day-card-actions { margin-bottom: 0; }
.today .timeline { margin-top: var(--workspace-gap); }
.today .day-card-orders { margin-top: var(--workspace-gap); }
.today .day-card-head { padding: var(--panel-padding); padding-bottom: var(--content-gap); }
.today .day-card-actions { padding: 0 var(--panel-padding) var(--panel-padding); }
@container (min-width: 950px) {
  .today-layout { grid-template-columns: minmax(0, 1fr) var(--support-width); gap: var(--workspace-gap); }
}
@media (min-width: 1100px) {
  body, body[data-theme] {
    --ops-w: var(--support-width);
    margin: var(--workspace-gap); height: calc(100dvh - 2 * var(--workspace-gap)); gap: var(--workspace-gap);
  }
  #stage { padding: 0 0 var(--workspace-gap); }
  #ops { padding: var(--panel-padding); }
  .ops-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1600px) {
  .reading-layout { grid-template-columns: minmax(0, 1fr) var(--support-width); gap: var(--workspace-gap); }
}
@media (max-width: 1099px) {
  .settings-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  :root { --workspace-gap: 24px; --panel-padding: 24px; }
  #stage :is(.page-head, .operations-heading) h1 { font-size: 30px; }
  .settings-grid { grid-template-columns: minmax(0, 1fr); }
}
@media print {
  body, body[data-theme] { margin: 0; height: auto; }
  #stage { padding: 0; }
}
