/* A source reading room around the existing map, scoped to the Saints world. */
.workspace.saints-study-active { grid-template-columns: var(--world-width) minmax(0, 1fr); }
.workspace.saints-study-active > .inspector { display: none !important; }
.stage.saints-study-mounted { min-width: 0; }
.stage.saints-study-mounted > :is(.scene-heading,.stage-toolbar,.world-aura-focus,.world-aura-intro-toggle,.inspector-reopen,.scene-node-list) { display: none !important; }
.saints-study-host { position: absolute; inset: 0; z-index: 3; min-width: 0; min-height: 0; overflow: hidden; }
.saints-study-shell { --ss-paper: #102035; --ss-deep: #091626; --ss-ink: #f2eee4; --ss-muted: #b6c7d8; --ss-gold: #eaca80; --ss-line: #3b5167; display: grid; grid-template-rows: auto minmax(0,1fr); position: relative; width: 100%; height: 100%; overflow: hidden; background: var(--ss-deep); color: var(--ss-ink); font-size: 15px; line-height: 1.55; }
:root[data-theme="light"] .saints-study-shell { --ss-paper: #f8f7f1; --ss-deep: #e9eef0; --ss-ink: #193044; --ss-muted: #496274; --ss-gold: #806024; --ss-line: #b6c6ce; }
.saints-study-shell [hidden] { display: none !important; }
.ss-header { position: relative; z-index: 2; display: grid; gap: 9px; padding: 14px 20px 0; border-bottom: 1px solid var(--ss-line); background: var(--ss-paper); }
.ss-topline { position: absolute; top: 14px; right: 20px; display: flex; align-items: center; gap: 16px; justify-content: space-between; min-width: 0; }
.ss-world-title { margin: 0; color: var(--ss-gold); font: 600 1.05rem/1.25 var(--font-serif,Georgia,serif); }
.ss-world-title { display: none; }
.ss-current-question { display: flex; align-items: center; min-height: 38px; max-width: 90ch; margin: 0; padding-right: 190px; font: 600 1.18rem/1.3 var(--font-serif,Georgia,serif); text-wrap: pretty; }
.ss-lesson-controls { display: grid; grid-template-columns: auto minmax(150px,350px) auto auto; align-items: center; justify-content: start; gap: 8px; }
.saints-study-shell :is(button,select,input) { font: inherit; color: var(--ss-ink); }
.saints-study-shell :is(button,select) { min-height: 38px; border: 1px solid var(--ss-line); border-radius: 7px; background: var(--ss-paper); }
.saints-study-shell button { cursor: pointer; }
.saints-study-shell button:disabled { cursor: default; opacity: .4; }
.saints-study-shell :is(button,select,input,a,summary,h3):focus-visible { outline: 2px solid var(--ss-gold); outline-offset: 3px; }
.saints-study-shell button:hover:not(:disabled) { border-color: var(--ss-gold); background: color-mix(in srgb,var(--ss-gold) 8%,var(--ss-paper)); }
.ss-button { padding: 7px 11px; font-size: .78rem !important; font-weight: 650 !important; }
.saints-study-shell .ss-mode-picker { display: block; width: 170px; padding: 5px 10px; font-size: .8rem !important; }
.ss-lesson-picker { width: 100%; padding: 6px 9px; font-size: .84rem !important; }
.ss-progress { color: var(--ss-muted); font-size: .76rem; white-space: nowrap; font-variant-numeric: tabular-nums; text-align: center; }
.ss-pane-tabs { display: flex; gap: 5px; margin-top: 1px; }
.saints-study-shell .ss-tab { min-height: 38px; border: 0; border-bottom: 3px solid transparent; border-radius: 5px 5px 0 0; padding: 6px 16px; color: var(--ss-muted); font-size: .83rem; font-weight: 700; }
.saints-study-shell .ss-tab[aria-selected="true"] { color: var(--ss-gold); border-bottom-color: var(--ss-gold); background: color-mix(in srgb,var(--ss-gold) 7%,var(--ss-paper)); }
.ss-workspace { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(350px,1fr); min-height: 0; min-width: 0; }
.ss-diagram-panel { display: grid; grid-template-rows: minmax(0,1fr) auto; min-height: 0; min-width: 0; overflow: hidden; }
.ss-diagram-viewport { position: relative; min-height: 0; min-width: 0; background: radial-gradient(ellipse at 50% 45%,#1a3447 0%,#0b1829 72%); }
:root[data-theme="light"] .ss-diagram-viewport { background: radial-gradient(ellipse at 50% 45%,#fffdf2 0%,#e7edf0 72%); }
.ss-diagram-viewport > #scene-canvas { display: block; position: absolute; inset: 0; width: 100%; height: 100%; --scene-label: var(--ss-ink); --scene-subtitle: var(--ss-muted); --gold: var(--ss-gold); --gold-strong: var(--ss-gold); }
.ss-diagram-viewport > :is(.world-aura-focus,.world-aura-intro-toggle) { display: none !important; }
.ss-map-empty { position: absolute; z-index: 3; top: 50%; left: 50%; transform: translate(-50%,-50%); display: grid; gap: 9px; width: min(360px,calc(100% - 28px)); max-height: calc(100% - 16px); padding: 15px; overflow: auto; border: 1px solid var(--ss-line); border-radius: 10px; background: var(--ss-paper); }
.ss-map-empty h3 { margin: 0; font: 600 1.05rem/1.25 var(--font-serif,Georgia,serif); }
.ss-map-empty p { margin: 0; color: var(--ss-muted); font-size: .8rem; line-height: 1.5; }
.ss-map-empty .ss-button { min-height: 42px; }
.ss-graph-footer { min-height: 0; border-top: 1px solid var(--ss-line); background: var(--ss-paper); padding: 7px 12px; overflow: auto; }
.ss-graph-footer:has(details[open]) { max-height: 240px; }
.ss-map-tools { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ss-map-hint { color: var(--ss-muted); font-size: .7rem; }
.ss-legend,.ss-participants { font-size: .77rem; }
.ss-legend > summary,.ss-participants > summary { min-height: 33px; padding: 6px 0; color: var(--ss-gold); cursor: pointer; }
.ss-legend-body { display: grid; gap: 7px; padding-bottom: 10px; }
.ss-legend-row { display: grid; gap: 2px; margin: 0; border-left: 2px solid #7fb3cb; padding-left: 9px; }
.ss-legend-row strong { color: var(--ss-ink); font-size: .77rem; }
.ss-legend-row span { color: var(--ss-muted); font-size: .74rem; }
.ss-legend-comparison { border-left-style: dashed; border-color: #ac91cb; }
.ss-legend-theological-synthesis,.ss-legend-interpretive-context { border-left-style: dotted; border-color: var(--ss-gold); }
.ss-participant-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; padding-bottom: 7px; }
.ss-participant { display: grid; gap: 3px; min-width: 0; padding: 8px; text-align: left; }
.ss-participant strong { font-size: .7rem; overflow-wrap: anywhere; }
.ss-participant span { color: var(--ss-muted); font-size: .7rem; line-height: 1.35; }
.ss-relationship-heading { grid-column: 1/-1; margin: 7px 0 2px; color: var(--ss-gold); font-size: .76rem; }
.ss-relationship { grid-column: 1/-1; }
.ss-reading-panel { min-width: 0; min-height: 0; overflow: hidden; border-left: 1px solid var(--ss-line); background: var(--ss-paper); }
.ss-reader,.ss-source-desk { height: 100%; min-height: 0; min-width: 0; padding: 19px 23px 40px; overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--ss-line) transparent; }
.ss-reader > :first-child { margin-top: 0; }
.ss-record { display: grid; gap: 17px; min-width: 0; }
.ss-reading-title { margin: 5px 0 0; color: var(--ss-ink); font: 600 1.3rem/1.25 var(--font-serif,Georgia,serif); text-wrap: pretty; }
.ss-overview { margin: 0; font-size: .93rem; line-height: 1.65; }
.ss-reading-context { margin: 6px 0 16px; color: var(--ss-muted); font-size: .75rem; }
.ss-field { margin: 0; min-width: 0; }
.ss-field h4,.ss-trace h4,.ss-passage h4 { margin: 0 0 6px; color: var(--ss-gold); font-size: .76rem; font-weight: 750; }
.ss-field p { margin: 0 0 8px; font-size: .91rem; line-height: 1.65; }
.ss-affirmative,.ss-limit,.ss-objection { border-left: 3px solid var(--ss-gold); padding-left: 12px; }
.ss-limit { border-color: #cf9678; }
.ss-objection { border-color: #c4868b; }
.ss-attribution p { color: var(--ss-muted); font-size: .82rem; }
.ss-trace { padding: 13px; border: 1px solid var(--ss-line); border-radius: 10px; background: color-mix(in srgb,var(--ss-deep) 35%,var(--ss-paper)); }
.ss-trace-row { display: grid; grid-template-columns: minmax(90px,.4fr) minmax(0,1fr) auto; align-items: start; gap: 10px; padding: 7px 0; border-bottom: 1px solid color-mix(in srgb,var(--ss-line) 50%,transparent); }
.ss-trace-row:last-child { border-bottom: 0; padding-bottom: 0; }
.ss-trace-row strong { color: var(--ss-muted); font-size: .72rem; line-height: 1.4; }
.ss-trace-row span { font-size: .84rem; line-height: 1.55; }
.ss-passage { min-width: 0; padding: 15px; border: 1px solid color-mix(in srgb,var(--ss-gold) 30%,var(--ss-line)); border-radius: 10px; background: color-mix(in srgb,var(--ss-deep) 26%,var(--ss-paper)); }
.ss-passage blockquote { margin: 0 0 10px; border: 0; padding: 0; color: var(--ss-ink); font: 400 1.04rem/1.75 var(--font-serif,Georgia,serif); }
.ss-translation { margin: 10px 0 5px; color: var(--ss-gold); font-size: .72rem; line-height: 1.5; }
.ss-note { color: var(--ss-muted); font-size: .8rem; line-height: 1.6; overflow-wrap: anywhere; }
.ss-scripture-actions { display: flex; flex-wrap: wrap; gap: 6px; margin: 11px 0; }
.ss-scripture-actions .ss-button { min-height: 40px; font-size: .73rem !important; }
.ss-edition { display: inline-block; padding: 6px 0; color: var(--ss-gold); font-size: .8rem; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.ss-details { margin: 0 0 14px; min-width: 0; border: 1px solid var(--ss-line); border-radius: 9px; }
.ss-record > .ss-details { margin: 0; }
.ss-details > summary { min-height: 42px; padding: 10px 12px; color: var(--ss-gold); font-size: .8rem; font-weight: 650; cursor: pointer; }
.ss-details[open] > summary { border-bottom: 1px solid var(--ss-line); }
.ss-details-body { display: grid; gap: 10px; padding: 12px; }
.ss-details-body > p { margin: 0; }
.ss-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: end; }
.ss-filter { display: grid; gap: 5px; min-width: 0; }
.ss-filter > span { color: var(--ss-muted); font-size: .73rem; }
.ss-filter > select { width: 100%; min-width: 0; padding: 7px; font-size: .78rem; }
.ss-filter-scope { grid-column: 1/-1; margin: 0; }
.ss-resource-list { gap: 0; }
.ss-resource { padding: 8px 0; border-bottom: 1px solid var(--ss-line); }
.ss-resource:last-child { border: 0; }
.ss-resource p { margin: 3px 0; }
.ss-evidence-entry { display: grid; gap: 5px; margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--ss-line); }
.ss-evidence-entry > strong { font-size: .84rem; }
.ss-evidence-entry p { margin: 0; }
.ss-text-button { min-height: 38px; padding: 4px 8px; font-size: .75rem !important; color: var(--ss-gold) !important; }
.ss-synthesis,.ss-practice { display: grid; gap: 13px; margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--ss-line); }
.ss-synthesis h3,.ss-practice h3,.ss-source-header h3,.ss-comparison > h3 { margin: 0; color: var(--ss-gold); font: 600 1.14rem/1.3 var(--font-serif,Georgia,serif); }
.ss-synthesis ol { margin: 0; padding-left: 22px; }
.ss-synthesis li { margin-bottom: 9px; font-size: .9rem; line-height: 1.65; }
.ss-exercise { display: grid; gap: 7px; min-width: 0; margin: 0; padding: 13px; border: 1px solid var(--ss-line); border-radius: 9px; }
.ss-exercise legend { max-width: 100%; padding: 0 5px; font-size: .87rem; font-weight: 650; }
.ss-choice { text-align: left; line-height: 1.45 !important; }
.ss-choice[aria-pressed="true"] { border-color: var(--ss-gold); }
.ss-exercise-feedback { margin-top: 5px; font-size: .85rem; }
.ss-exercise-feedback .ss-button { display: block; margin-top: 10px; }
.ss-inspect-record { margin-top: 18px; width: 100%; }
.ss-empty { display: grid; gap: 12px; margin: 14px 0; padding: 20px; border: 1px solid var(--ss-line); border-radius: 10px; background: color-mix(in srgb,var(--ss-gold) 5%,var(--ss-paper)); }
.ss-empty h3,.ss-empty p { margin: 0; }
.ss-empty h3 { font: 600 1.2rem/1.3 var(--font-serif,Georgia,serif); }
.ss-empty p { font-size: .9rem; }
.ss-source-header { display: flex; gap: 12px; align-items: center; margin-bottom: 14px; }
.ss-source-controls:empty { display: none; }
.ss-source-controls { margin-bottom: 12px; }
.ss-source-scope { color: var(--ss-gold); font-size: .7rem; }
.ss-source-search { width: 100%; min-height: 43px; padding: 8px 12px; border: 1px solid var(--ss-line); border-radius: 8px; background: var(--ss-deep); font-size: .9rem !important; }
.ss-source-search::placeholder { color: var(--ss-muted); }
.ss-source-count { margin: 8px 0 14px; color: var(--ss-muted); font-size: .76rem; }
.ss-source-list { display: grid; gap: 8px; }
.ss-source-card { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; align-items: center; padding: 5px; border: 1px solid var(--ss-line); border-radius: 9px; }
.saints-study-shell .ss-source-open { display: grid; gap: 5px; min-width: 0; border: 0; padding: 8px; text-align: left; }
.ss-source-open strong { color: var(--ss-ink); font-size: .82rem; }
.ss-source-open span { color: var(--ss-muted); font-size: .76rem; line-height: 1.45; }
.ss-source-compare { margin-right: 4px; font-size: .72rem !important; }
.ss-source-compare[aria-pressed="true"] { border-color: var(--ss-gold); color: var(--ss-gold); }
.ss-comparison { display: grid; gap: 14px; margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--ss-line); }
.ss-comparison > .ss-button { justify-self: start; }
.ss-comparison-readings { display: grid; gap: 20px; }
.ss-comparison-source { display: grid; gap: 12px; padding: 13px; border: 1px solid var(--ss-line); border-radius: 10px; }
.ss-comparison-source > h4 { margin: 0; font: 600 1.07rem/1.3 var(--font-serif,Georgia,serif); }
.ss-status { position: absolute; z-index: 4; bottom: 10px; left: 50%; transform: translateX(-50%); margin: 0; padding: 8px 15px; border: 1px solid var(--ss-line); border-radius: 20px; background: var(--ss-paper); color: var(--ss-gold); font-size: .82rem; box-shadow: 0 5px 20px #0005; white-space: nowrap; }
.ss-error { position: absolute; z-index: 5; top: 50%; left: 50%; transform: translate(-50%,-50%); width: min(420px,calc(100% - 28px)); padding: 22px; border: 1px solid #cf9678; border-radius: 12px; background: var(--ss-paper); box-shadow: 0 12px 55px #0008; }
.ss-error p { font-size: .9rem; }
@media (min-width: 1500px) { .ss-reader,.ss-source-desk { padding-inline: 30px; } .ss-workspace { grid-template-columns: minmax(0,1.2fr) minmax(400px,1fr); } }
@media (min-width: 781px) and (max-width: 1100px) { .ss-workspace { grid-template-columns: minmax(0,1fr) minmax(340px,1fr); } .ss-header { padding-inline: 14px; } .ss-reader,.ss-source-desk { padding: 17px 16px 35px; } .ss-current-question { font-size: 1.08rem; } }
@media (max-width: 780px), (max-height: 550px) and (max-width: 1100px) {
  .workspace.saints-study-active { grid-template-columns: minmax(0,1fr); }
  .saints-study-shell { font-size: 15px; }
  .ss-header { gap: 5px; padding: 8px 12px 0; }
  .ss-world-title { font-size: .8rem; }
  .ss-topline { top: 8px; right: 12px; gap: 8px; }
  .saints-study-shell .ss-mode-picker { width: 132px; min-height: 44px !important; padding-inline: 7px; font-size: .76rem !important; }
  .ss-current-question { padding-right: 140px; font-size: 1.03rem; line-height: 1.25; }
  .ss-lesson-controls { grid-template-columns: auto minmax(0,1fr) auto; justify-content: stretch; gap: 6px; }
  .ss-progress { display: none; }
  .ss-lesson-controls > .ss-button { min-height: 42px; padding-inline: 8px; font-size: .7rem !important; }
  .ss-lesson-picker { min-height: 42px !important; font-size: .77rem !important; padding-inline: 5px; }
  .ss-pane-tabs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; }
  .saints-study-shell .ss-tab { min-height: 42px; padding: 6px; font-size: .82rem; }
  .ss-workspace { display: block; position: relative; overflow: hidden; }
  .ss-diagram-panel,.ss-reading-panel { width: 100%; height: 100%; }
  .ss-reading-panel { border: 0; }
  .ss-reader,.ss-source-desk { padding: 16px 16px 30px; }
  .ss-reading-title { font-size: 1.24rem; }
  .ss-overview,.ss-field p { font-size: .94rem; }
  .ss-passage { padding: 13px; }
  .ss-passage blockquote { font-size: 1.04rem; line-height: 1.7; }
  .ss-trace { padding: 11px; }
  .ss-trace-row { grid-template-columns: 90px minmax(0,1fr); gap: 8px; }
  .ss-trace-row > .ss-text-button { grid-column: 2; justify-self: start; }
  .ss-trace-row span { font-size: .88rem; }
  .ss-note { font-size: .83rem; }
  .ss-scripture-actions .ss-button { min-height: 44px; font-size: .76rem !important; }
  .ss-details > summary,.ss-legend > summary,.ss-participants > summary { min-height: 44px; }
  .ss-filter-grid { grid-template-columns: 1fr; }
  .ss-filter > select { min-height: 44px; font-size: 16px; }
  .ss-source-search { font-size: 16px !important; }
  .ss-source-card { grid-template-columns: minmax(0,1fr); gap: 0; }
  .ss-source-compare { justify-self: start; margin: 0 8px 7px; min-height: 40px !important; }
  .ss-source-open strong { font-size: .9rem; }
  .ss-source-open span { font-size: .81rem; }
  .ss-graph-footer { display: grid; grid-template-columns: auto auto auto; align-items: center; justify-content: space-between; gap: 6px; padding: 4px 12px; }
  .ss-graph-footer:has(details[open]) { display: block; max-height: 200px; }
  .ss-map-tools { gap: 6px; }
  .ss-map-hint { display: none; }
  .ss-legend > summary,.ss-participants > summary { white-space: nowrap; }
  .ss-participant-list { grid-template-columns: 1fr; }
  .ss-participant { min-height: 44px; }
  .ss-diagram-panel:has(.ss-graph-footer details[open]) { grid-template-rows: minmax(0,1fr); }
  .ss-diagram-panel:has(.ss-graph-footer details[open]) > .ss-diagram-viewport { display: none; }
  .ss-diagram-panel .ss-graph-footer:has(details[open]) { display: block; max-height: none; height: 100%; }
}
@media (max-width: 1100px) and (max-height: 550px) {
  .ss-header { gap: 2px; padding-top: 4px; }
  .ss-topline { position: absolute; top: 4px; right: 10px; width: 128px; }
  .ss-world-title { display: none; }
  .ss-current-question { padding-right: 137px; font-size: .9rem; min-height: 44px; }
  .ss-lesson-controls { grid-template-columns: auto minmax(0,1fr) auto; }
  .ss-lesson-controls > .ss-button,.ss-lesson-picker { min-height: 36px !important; }
  .saints-study-shell .ss-tab { min-height: 36px; }
  .ss-graph-footer { padding-block: 0; }
  .ss-graph-footer:has(details[open]) { max-height: 120px; }
  .ss-legend > summary,.ss-participants > summary,.ss-fit { min-height: 36px !important; }
  .ss-legend,.ss-participants { display: block; margin-right: 0; }
  .ss-legend[open],.ss-participants[open] { display: block; }
  .ss-map-hint { display: none; }
}
@media (min-width: 781px) and (max-width: 1100px) and (max-height: 550px) {
  .workspace.saints-study-active { grid-template-columns: var(--world-width) minmax(0,1fr); }
  .application:has(.saints-study-host:not([hidden])) .atlas-navigator { gap: 6px; }
  .application:has(.saints-study-host:not([hidden])) .navigation-share { width: 36px; padding-inline: 0; }
  .application:has(.saints-study-host:not([hidden])) .navigation-share-text,
  .application:has(.saints-study-host:not([hidden])) .navigation-recent summary > span:last-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .application:has(.saints-study-host:not([hidden])) .navigation-recent summary { width: 36px; padding-inline: 0; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) { .saints-study-shell,.saints-study-shell * { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }
