/* The shared Signal slide reader in a native dialog. All presentation uses the
   current site tokens; research content and access remain server-owned. */
.signal-overlay-open,
.signal-card-actions>[data-signal-overlay-open],
.sg-card>[data-signal-overlay-open]{
 box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
 gap:8px;min-width:0;min-height:48px;max-width:100%;padding:10px 16px;
 border:1px solid var(--otr-ink);border-radius:var(--otr-radius);
 background:var(--otr-ink);color:var(--otr-surface);
 font:700 14px/1.4 Arial,Helvetica,sans-serif;text-align:center;text-decoration:none;
 overflow-wrap:break-word;cursor:pointer;
}
.signal-card-actions>[data-signal-overlay-open]{flex:1 1 180px}
.signal-overlay-open:focus-visible,
.signal-card-actions>[data-signal-overlay-open]:focus-visible,
.sg-card>[data-signal-overlay-open]:focus-visible{
 outline:3px solid var(--otr-orange-dark);outline-offset:3px;
}
dialog.signal-overlay-dialog[data-signal-overlay]{
 --signal-overlay-gutter:16px;
 box-sizing:border-box;position:fixed;inset:0;margin:auto;padding:0;
 width:min(1080px,calc(100% - 32px));max-width:calc(100% - 32px);
 height:calc(100vh - 32px);height:calc(100dvh - 32px);max-height:calc(100dvh - 32px);
 border:1px solid var(--otr-line);border-radius:var(--otr-radius);
 background:var(--otr-surface);color:var(--otr-ink);box-shadow:var(--otr-shadow);
 font:400 18px/1.6 Arial,Helvetica,sans-serif;overflow:hidden;
}
dialog.signal-overlay-dialog:not([open]){display:none}
dialog.signal-overlay-dialog[open]{display:block}
dialog.signal-overlay-dialog::backdrop{
 background:color-mix(in srgb,var(--otr-ink) 45%,transparent);
}
.signal-overlay-dialog .signal-overlay-panel{
 display:flex;flex-direction:column;min-width:0;min-height:0;width:100%;
 height:100%;max-height:100%;
 background:var(--otr-surface);color:var(--otr-ink);
}
.signal-overlay-dialog .signal-overlay-toolbar{
 display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;
 flex:0 0 auto;margin:0;padding:8px 24px;border-bottom:1px solid var(--otr-line);
 background:var(--otr-surface);color:var(--otr-ink);
}
.signal-overlay-dialog [data-signal-overlay-title]{
 min-width:0;margin:0;align-self:center;color:var(--otr-ink);
 font:700 16px/1.4 Arial,Helvetica,sans-serif;letter-spacing:-.025em;
 overflow-wrap:break-word;word-break:normal;text-wrap:pretty;
}
.signal-overlay-dialog [data-signal-overlay-close],
.signal-overlay-dialog [data-signal-overlay-retry]{
 box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:8px;
 min-width:48px;min-height:48px;margin:0;padding:10px 16px;
 border:1px solid var(--otr-ink);border-radius:var(--otr-radius);
 background:var(--otr-ink);color:var(--otr-surface);
 font:700 14px/1.4 Arial,Helvetica,sans-serif;white-space:normal;cursor:pointer;
}
.signal-overlay-dialog [data-signal-overlay-close]{flex:none;justify-self:end}
.signal-overlay-dialog [data-signal-overlay-close] svg{width:18px;height:18px;flex:none}
.signal-overlay-dialog .signal-overlay-content{
 box-sizing:border-box;flex:1 1 auto;min-width:0;min-height:0;max-width:100%;
 margin:0;padding:12px 24px;overflow:auto;
 background:var(--otr-surface);color:var(--otr-muted);
 font:400 18px/1.6 Arial,Helvetica,sans-serif;overflow-wrap:anywhere;

}
.signal-overlay-dialog .signal-overlay-content:has(.signal-reader__body){overflow:hidden}
.signal-overlay-dialog .signal-overlay-research-fragment,
.signal-overlay-dialog .otr-signal-slides{
 box-sizing:border-box;width:100%;max-width:100%;min-width:0;
 height:100%;margin:0 auto;padding:0;border:0;border-radius:0;background:transparent;
}
.signal-overlay-dialog .otr-slide-reader,
.signal-overlay-dialog .otr-slide-reader[data-enhanced]{
 min-width:0;min-height:0;max-width:100%;height:100%;margin:0;
 display:grid;grid-template-rows:auto minmax(0,1fr) auto;
}
.signal-overlay-dialog .otr-slide-reader [data-reader-header]{margin-bottom:12px}
.signal-overlay-dialog .otr-slide-reader [data-reader-header]>a{display:none}
.signal-overlay-dialog .otr-slide-reader [data-reader-header]>label{min-width:0;max-width:100%}
.signal-overlay-dialog .otr-slide-reader [data-slide-jump]{max-width:100%}
/* One scroll owner contains the complete active section and disclosures.
   The chapter menu and Previous/Next stay outside it and remain reachable. */
.signal-overlay-dialog[data-signal-overlay] .otr-slide-reader .signal-reader__body{
 min-width:0;min-height:0;max-height:100%;overflow-y:auto!important;overflow-x:auto;overscroll-behavior:contain;
 scrollbar-gutter:stable;scroll-padding-block:20px;
}
.signal-overlay-dialog .otr-slide-reader[data-enhanced] .otr-slide-stage,
.signal-overlay-dialog .otr-slide-reader[data-reader-layout][data-enhanced] .otr-slide-stage,
.signal-overlay-dialog .otr-slide-reader[data-enhanced] .otr-slide,
.signal-overlay-dialog .otr-slide-reader[data-reader-layout][data-enhanced] .otr-slide[data-reader-overflow]{
 height:auto;min-height:0;max-height:none;overflow:visible;box-shadow:none;
}
.signal-overlay-dialog .otr-slide-reader .otr-slide{padding:24px 28px}
.signal-overlay-dialog .otr-slide-reader [data-slide-heading]{
 max-width:36ch;font-size:clamp(25px,3vw,34px);line-height:1.22;
 letter-spacing:-.025em;text-wrap:pretty;
}
.signal-overlay-dialog .otr-slide-reader .otr-slide-body{
 max-width:70ch;font-size:max(18px,calc(20px + var(--ser-reading-adjust,0px)));line-height:1.65;
}
.signal-overlay-dialog .otr-slide-reader .otr-slide-body :where(p,ul,ol,dl,blockquote,figure,table){margin-bottom:20px}
.signal-overlay-dialog .otr-slide-reader .otr-slide-body>:last-child{margin-bottom:0}
.signal-overlay-dialog .otr-slide-reader [data-reader-controls]{padding-top:12px}
.signal-overlay-dialog .otr-slide-reader [data-reader-tools]{
 min-width:0;margin:14px 0 0;padding:0 16px;
 border:1px solid var(--otr-line);border-radius:16px;
 background:var(--otr-surface);color:var(--otr-ink);
}
.signal-overlay-dialog .otr-slide-reader [data-reader-tools]>summary{
 min-height:48px;box-sizing:border-box;padding:12px 0;
 color:var(--otr-ink);font:600 15px/1.5 Arial,Helvetica,sans-serif;
 cursor:pointer;overflow-wrap:break-word;
}
.signal-overlay-dialog .otr-slide-reader [data-reader-tools][open]>summary{
 margin-bottom:8px;border-bottom:1px solid var(--otr-line);
}
.signal-overlay-dialog .otr-slide-reader [data-reader-tools] [data-slide-audio]{
 padding:4px 0 12px;border-top:0;
}
.signal-overlay-dialog .otr-slide-reader [data-reader-tools] [data-slide-audio] button{
 display:inline-flex;align-items:center;justify-content:center;gap:8px;
 min-width:48px;min-height:48px;padding:10px 16px;
 border:1px solid var(--otr-line);border-radius:999px;
 background:var(--otr-surface);color:var(--otr-ink);
 font:600 14px/1.4 Arial,Helvetica,sans-serif;
}
.signal-overlay-dialog .otr-slide-reader [data-reader-tools] .otr-slide-reader-actions{
 margin-top:0;padding:12px 0 16px;
}
.signal-overlay-dialog .otr-slide-reader [data-reader-original],
.signal-overlay-dialog .otr-slide-reader [data-reader-sources]{font-size:18px;line-height:1.6}
.signal-overlay-dialog .signal-overlay-content :is(img,video){max-width:100%;height:auto}
.signal-overlay-dialog .signal-overlay-content :is(pre,code){max-width:100%;overflow-wrap:anywhere}
.signal-overlay-dialog .signal-overlay-content pre{white-space:pre-wrap}
.signal-overlay-dialog .signal-overlay-footer{
 display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 16px;
 flex:0 0 auto;min-width:0;margin:0;padding:6px 24px;
 border-top:1px solid var(--otr-line);background:var(--otr-surface);
}
.signal-overlay-dialog [data-signal-overlay-permalink]{
 display:inline-flex;align-items:center;min-height:48px;max-width:100%;
 color:var(--otr-orange-dark);font:600 14px/1.5 Arial,Helvetica,sans-serif;
 text-underline-offset:.15em;overflow-wrap:anywhere;
}
.signal-overlay-dialog .signal-overlay-status{
 margin:0;color:var(--otr-muted);font:400 16px/1.6 Arial,Helvetica,sans-serif;overflow-wrap:anywhere;
}
.signal-overlay-dialog .signal-overlay-status:empty{display:none}
.signal-overlay-dialog .signal-overlay-footer .signal-overlay-status{font-size:14px}
.signal-overlay-dialog .signal-overlay-status [data-signal-overlay-retry]{margin:12px 0 0}
.signal-overlay-dialog :is(a,button,input,select,textarea,summary):focus-visible{
 outline:3px solid var(--otr-orange-dark);outline-offset:3px;border-radius:4px;
}
.signal-overlay-dialog .signal-overlay-content:focus-visible{
 outline:3px solid var(--otr-orange-dark);outline-offset:-3px;
}
.signal-overlay-dialog[data-dialog-fallback]{
 z-index:2147483000;
 box-shadow:var(--otr-shadow),0 0 0 100vmax color-mix(in srgb,var(--otr-ink) 45%,transparent);
}
/* Complete recorded-price provenance stays readable on cards and in the
   authorised popup. These rules change no value or membership projection. */
@layer otr-serif-system{
 body.signals-page #main[data-editorial-directory] .sg-card .sr-price-panel :is(.sr-price-asset,.sr-price-horizon,.sr-price-label,.sr-price-currency,.sr-price-basis,.sr-price-clock,.sr-price-source,.sr-price-note,.sr-price-disclosure,.sr-price-reference),
 dialog.signal-overlay-dialog[data-signal-overlay] .sr-price-panel :is(.sr-price-asset,.sr-price-horizon,.sr-price-label,.sr-price-currency,.sr-price-basis,.sr-price-clock,.sr-price-source,.sr-price-note,.sr-price-disclosure,.sr-price-reference){font-size:14px!important;line-height:1.55!important}
 body.signals-page #main[data-editorial-directory] .sg-card .sr-price-panel .sr-price-reference>strong,
 dialog.signal-overlay-dialog[data-signal-overlay] .sr-price-panel .sr-price-reference>strong{font-size:inherit!important}
 @media(max-width:600px){
  body.signals-page #main[data-editorial-directory] .sg-card .sr-price-grid,
  dialog.signal-overlay-dialog[data-signal-overlay] .sr-price-grid{grid-template-columns:minmax(0,1fr)!important}
  body.signals-page #main[data-editorial-directory] .sg-card .sr-price-grid>.sr-price-point,
  dialog.signal-overlay-dialog[data-signal-overlay] .sr-price-grid>.sr-price-point{padding:0!important}
  body.signals-page #main[data-editorial-directory] .sg-card .sr-price-grid>.sr-price-point+.sr-price-point,
  dialog.signal-overlay-dialog[data-signal-overlay] .sr-price-grid>.sr-price-point+.sr-price-point{padding:14px 0 0!important;margin-top:14px;border-left:0!important;border-top:1px solid var(--otr-line)!important}
 }
 @container signal-card (max-width:420px){
  body.signals-page #main[data-editorial-directory] .sg-card .sr-price-grid{grid-template-columns:minmax(0,1fr)!important}
  body.signals-page #main[data-editorial-directory] .sg-card .sr-price-grid>.sr-price-point{padding:0!important}
  body.signals-page #main[data-editorial-directory] .sg-card .sr-price-grid>.sr-price-point+.sr-price-point{padding:14px 0 0!important;margin-top:14px;border-left:0!important;border-top:1px solid var(--otr-line)!important}
 }
}
@media(max-width:600px){
 dialog.signal-overlay-dialog[data-signal-overlay]{
  --signal-overlay-gutter:0px;
  width:100%;max-width:100%;height:100vh;height:100dvh;max-height:100dvh;
  border:0;border-radius:0;
 }
 .signal-overlay-dialog .signal-overlay-panel{height:100%;max-height:100%;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);box-sizing:border-box}
 .signal-overlay-dialog .signal-overlay-toolbar{gap:8px 12px;padding:6px 16px}
 /* The compact dialog label stays visible; the complete headline is in the reading body. */
 .signal-overlay-dialog [data-signal-overlay-title]{
  position:static;width:auto;height:auto;margin:0;overflow:visible;
  clip:auto;clip-path:none;white-space:normal;border:0;
 }
 .signal-overlay-dialog [data-signal-overlay-close]{grid-column:2;grid-row:1}
 .signal-overlay-dialog .signal-overlay-content{padding:8px 12px;scrollbar-gutter:auto}
 .signal-overlay-dialog .signal-overlay-footer{padding:0 16px}
 .signal-overlay-dialog .otr-slide-reader [data-reader-header]{display:block;margin-bottom:10px}
 .signal-overlay-dialog .otr-slide-reader [data-reader-header]>label{display:block;width:100%}
 .signal-overlay-dialog .otr-slide-reader .otr-slide{padding:18px 16px}
 .signal-overlay-dialog .otr-slide-reader [data-slide-heading]{font-size:25px;line-height:1.25;margin-bottom:20px}
 .signal-overlay-dialog .otr-slide-reader .otr-slide-body{font-size:max(18px,calc(18px + var(--ser-reading-adjust,0px)));line-height:1.65}
 .signal-overlay-dialog .otr-slide-reader [data-reader-controls]{column-gap:6px}
 .signal-overlay-dialog .otr-slide-reader [data-reader-controls]>button{padding-inline:12px}
}
@media(max-width:370px){
 .signal-overlay-dialog .signal-overlay-toolbar{padding-inline:12px}
 .signal-overlay-dialog .otr-slide-reader .otr-slide{padding-inline:14px}
 .signal-overlay-dialog .otr-slide-reader [data-slide-heading]{font-size:23px}
 .signal-overlay-dialog .otr-slide-reader [data-reader-controls]>button{padding-inline:10px;gap:5px}
}
@media(min-width:601px){
 dialog.signal-overlay-dialog[data-signal-overlay]{
  height:calc(100dvh - max(16px,env(safe-area-inset-top)) - max(16px,env(safe-area-inset-bottom)));
 }
}
@media(prefers-reduced-motion:reduce){
 .signal-overlay-dialog,.signal-overlay-dialog *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
}

.signal-overlay-dialog [data-reader-sources-open]{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;padding:8px 12px;border:1px solid var(--otr-line);border-radius:var(--otr-radius);background:var(--otr-surface);color:var(--otr-ink);font:600 14px/1.4 Arial,Helvetica,sans-serif;cursor:pointer}
.signal-overlay-dialog .signal-reader__body:focus-visible{outline:3px solid var(--otr-orange-dark);outline-offset:-3px}

/* Mobile accessibility: a compact reachable menu, generous controls and room
   for device cutouts. These rules do not change the current colour system. */
.signal-overlay-dialog .otr-slide-reader [data-reader-header]{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin-bottom:8px}
.signal-overlay-dialog .otr-slide-reader [data-reader-header]>[data-reader-label]{display:none}
.signal-overlay-dialog .otr-slide-reader [data-reader-header]>label{display:block;width:100%;min-width:0;grid-column:1}
.signal-overlay-dialog .otr-slide-reader [data-slide-jump]{width:100%;max-width:100%;min-height:48px;font-size:16px}
.signal-overlay-dialog [data-reader-sources-open]{grid-column:2;max-width:100%;font-size:16px;white-space:normal;overflow-wrap:anywhere}
.signal-overlay-dialog .otr-slide-reader [data-reader-controls]>button{min-width:48px;min-height:48px;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.signal-overlay-dialog .otr-slide-reader [data-reader-tools] :is(button,select,summary){min-height:48px}
.signal-overlay-dialog .otr-slide-reader [data-reader-tools] select{min-width:0;max-width:100%;font-size:16px}
.signal-overlay-dialog .signal-overlay-panel{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);box-sizing:border-box}
@media(max-width:600px){
 .signal-overlay-dialog .otr-slide-reader [data-reader-header]{display:grid;grid-template-columns:minmax(0,1fr) auto;margin-bottom:8px}
 .signal-overlay-dialog .otr-slide-reader [data-reader-header]>label{width:100%;justify-self:stretch}
 .signal-overlay-dialog .otr-slide-reader [data-reader-controls]{padding-block:8px}
}

/* Overlay structure must outrank the direct-page flowing-body defaults even
   when the reader stylesheet is loaded after this stylesheet. */
dialog.signal-overlay-dialog[data-signal-overlay] .otr-slide-reader{box-sizing:border-box;min-height:0;min-width:0;height:100%;max-height:100%;overflow:hidden;grid-template-rows:auto minmax(0,1fr) auto}
dialog.signal-overlay-dialog[data-signal-overlay] .signal-overlay-footer{display:flex;flex-wrap:wrap;min-height:0;margin:0;padding-block:0;gap:0 12px;border-top:1px solid var(--otr-line)}
/* Retain native disclosure markers while giving every research disclosure the
   same minimum touch height as the chapter controls. */
dialog.signal-overlay-dialog[data-signal-overlay] .signal-reader__body summary{box-sizing:border-box;min-height:48px!important}
@media(max-width:600px){
 dialog.signal-overlay-dialog[data-signal-overlay] [data-reader-tools] [data-slide-audio]>label{flex:1 0 100%;width:100%;max-width:100%;min-width:0}
 dialog.signal-overlay-dialog[data-signal-overlay] [data-reader-tools] [data-slide-voice]{width:100%;max-width:100%;min-width:min(160px,100%)}
}
