/* Round 23: the chart plate, the Natal view, the Davison tab and the sky on a date.
   Everything is scoped to .r23-* so nothing else on the page is restyled. Colours are the page's own
   tokens (--pa and --pb for the two people, --warm/--demand/--neutral for the links), plus one new
   token for the sky ring. */
:root{--r23-sky:#8a5200;--r23-cusp:color-mix(in srgb,var(--muted) 72%,var(--bg));--r23-faint:color-mix(in srgb,var(--muted) 52%,var(--bg));--r23-line-rest:.45}
:root[data-ground=night]{--r23-sky:#e8b45c;--r23-cusp:color-mix(in srgb,var(--muted) 58%,var(--bg));--r23-faint:color-mix(in srgb,var(--muted) 42%,var(--bg));--r23-line-rest:.36}
/* Contrast (atelier audit finding 8): house lines at least 3:1 in both grounds (day 3.3, night 4.3), a resting link line at least 2:1 (day 2.0 to 2.2, night 2.0 to 2.3). */

/* ---- the Davison view hides the scored sections, as the Marks view does (nothing is removed) */
body[data-r23-view="davison"] :is(#r17-layers,#short-reading,#short-reading-more,#r17-near-key,#r14-share-top,#r14-strongest,#r20-also,#r17-seeks,#picture,#picture-resolution,#estimate-controls,#r14-share-end,#playback,#result-toolbar,#long-reading,#r20-marks){display:none!important}
.r23-davison{order:2;width:100%;padding:0 0 56px}
.r23-davison>.r23-plate-head{display:flex;align-items:baseline;justify-content:space-between;gap:28px;padding:0 0 14px;margin-bottom:18px;border-bottom:1px solid var(--rule)}
.r23-davison>.r23-plate-head h2{font:500 clamp(28px,2.8vw,38px)/1.06 var(--display);letter-spacing:-.035em}
.r23-davison>.r23-plate-head p{max-width:40ch;color:var(--muted);font-size:15px;line-height:1.5;text-align:right;text-wrap:pretty}
@media(max-width:700px){.r23-davison>.r23-plate-head{display:block;padding:0 0 18px}.r23-davison>.r23-plate-head p{text-align:left;margin-top:8px}}

/* ---- the way in, under the tab introduction */
.r23-wheel-link{order:2;width:100%;max-width:640px;margin:-8px auto 24px;padding:0 4px}
.r23-wheel-link button{min-height:44px;padding:8px 18px;border:1px solid var(--ink);border-radius:999px;font-size:15px;text-align:left}
@media(min-width:961px){.result-tabs [data-result-tab="davison"] .r22-tab-line{max-width:34ch}}
@media(max-width:720px){.result-tabs [data-result-tab="davison"] .r22-tab-line{max-width:none}}
/* ---- the plate: first in Geometry, across the whole width; the old layout moves down one row */
.geometry-view>.r23-plate{grid-column:1/-1;grid-row:1}
.geometry-view>.r23-plate:not([hidden])~.highlights{grid-row:2}
.geometry-view>.r23-plate:not([hidden])~.r23-stage-head{grid-column:1;grid-row:3;align-self:end}
.geometry-view>.r23-plate:not([hidden])~.stage{grid-row:4}
.geometry-view>.r23-plate:not([hidden])~.r14-planets{grid-row:2/span 3}
@media(max-width:1150px){.geometry-view>.r23-plate:not([hidden])~:is(.highlights,.r23-stage-head,.stage,.r14-planets){grid-row:auto}}
/* ---- the plate */
.r23-plate{margin:0 0 56px;padding-top:4px}
.r23-plate-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:6px 32px;margin:0 0 18px}
.r23-plate-head h3{font:500 clamp(26px,2.6vw,36px)/1.08 var(--display);letter-spacing:-.03em;grid-column:1}
.r23-plate-head p{grid-column:1;color:var(--muted);max-width:62ch;font-size:15px;line-height:1.55}
.r23-choose{grid-column:2;grid-row:1/span 2;align-self:end;display:flex;gap:4px;padding:4px;border:1px solid var(--rule);border-radius:999px;flex-wrap:wrap;justify-content:center}
.r23-choose button{min-height:40px;min-width:44px;padding:6px 16px;border:0;border-radius:999px;font-size:14px;max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.r23-choose button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.r23-choose button[aria-pressed="true"]:hover{color:var(--bg)}
.r23-plate-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:28px 40px;align-items:start}
.r23-plate-box{position:relative;width:100%;max-width:min(100%,calc(100vh - 160px));margin:0 auto;aspect-ratio:1/1}
.r23-plate-box svg{display:block;width:100%;height:auto;overflow:visible;font-family:var(--body)}
.r23-side{display:grid;gap:18px;align-content:start;min-width:0}
.r23-note{font-size:14px;line-height:1.5;color:var(--muted);border-left:2px solid var(--rule);padding-left:12px}
.r23-focus-hint{font-size:14px;color:var(--muted);line-height:1.5}
.r23-focus{display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px 14px;align-items:start;padding:14px 0;border-block:1px solid var(--rule)}
.r23-focus .r23-focus-glyph{grid-row:1/span 2;width:40px;height:40px}
.r23-focus.who-a{color:var(--pa)}.r23-focus.who-b{color:var(--pb)}.r23-focus.who-t{color:var(--r23-sky)}
.r23-focus-text{color:var(--ink);font-size:16px;line-height:1.4;overflow-wrap:anywhere}
.r23-focus-links{color:var(--muted);font-size:13px}
.r23-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:13px;color:var(--muted)}
.r23-key{display:inline-flex;align-items:center;gap:7px}
.r23-swatch{display:inline-block;width:12px;height:12px;border-radius:50%;background:currentColor}
.r23-swatch.who-a{background:var(--pa)}.r23-swatch.who-b{background:var(--pb)}.r23-swatch.who-t{background:var(--r23-sky)}
.r23-swatch.line{width:22px;height:0;border-radius:0;background:none;border-top:2px solid var(--neutral)}
.r23-swatch.line.warm{border-top-color:var(--warm)}.r23-swatch.line.demand{border-top:2px dashed var(--demand)}.r23-swatch.line.transit{border-top:2px dotted var(--r23-sky)}
.r23-stage-head{font:500 20px/1.2 var(--display);letter-spacing:-.02em;margin:8px 0 10px;color:var(--ink)}

/* ---- the wheel */
.r23-wheel{--glyph-stroke:1.45}
.r23-wheel .r23-band{fill:none;stroke:var(--wash)}
.r23-wheel .r23-ring{fill:none;stroke:var(--r23-cusp);stroke-width:1}
.r23-wheel .r23-ring.faint{stroke:var(--r23-faint);stroke-width:.9}
.r23-wheel .r23-ring.dotted{stroke:var(--r23-faint);stroke-dasharray:1.5 6;stroke-width:1.2}
.r23-wheel .r23-ticks{stroke:var(--r23-cusp);stroke-width:1;fill:none}
.r23-wheel .r23-sign{color:var(--muted)}
.r23-wheel .r23-sign-name{fill:var(--muted);font-size:10.5px;letter-spacing:.16em}
.r23-wheel .r23-cusp{stroke:var(--r23-cusp);stroke-width:1}
.r23-wheel .r23-house-number{fill:var(--muted);font-variant-numeric:tabular-nums}
.r23-wheel .r23-axis{stroke:var(--ink);stroke-width:1.6;opacity:.8}
.r23-wheel .r23-axis-tip{fill:var(--ink)}
.r23-wheel .r23-axis-word{fill:var(--ink);font-weight:600;letter-spacing:.02em;paint-order:stroke;stroke:var(--bg);stroke-width:5px;stroke-linejoin:round}
.r23-wheel .r23-centre{stroke:var(--r23-faint);fill:none;stroke-width:1}
.r23-wheel .r23-line{fill:none;stroke:var(--neutral);stroke-width:.9;opacity:var(--r23-line-rest);stroke-linecap:round;transition:opacity .2s,stroke-width .2s}
.r23-wheel .r23-line.warm{stroke:var(--warm)}
.r23-wheel .r23-line.demand{stroke:var(--demand);stroke-dasharray:6 5}
.r23-wheel .r23-line.transit{stroke:var(--r23-sky);stroke-dasharray:1.5 5;opacity:.7;stroke-width:1.6}
.r23-wheel .r23-line.strong{opacity:.9;stroke-width:2}
.r23-wheel .r23-line.lit{opacity:1;stroke-width:2.4}
.r23-wheel .r23-line.dim{opacity:.07}
.r23-wheel .r23-line.picked{stroke-width:3.4;opacity:1}
.r23-wheel .r23-line-hit{stroke:transparent;fill:none;cursor:pointer}
.r23-wheel .r23-leader{fill:none;stroke:currentColor;stroke-width:.9;opacity:.6}
.r23-wheel .r23-anchor{fill:var(--bg);stroke:currentColor;stroke-width:1.4}
.r23-wheel .r23-anchor.approx{stroke-dasharray:1.5 1.5}
.r23-wheel .r23-range{fill:none;stroke:currentColor;stroke-width:7;opacity:.28;stroke-linecap:round}
.r23-wheel .who-a{color:var(--pa)}.r23-wheel .who-b{color:var(--pb)}.r23-wheel .who-r,.r23-wheel .who-d{color:var(--ink)}.r23-wheel .who-t{color:var(--r23-sky)}
.r23-wheel .r23-body{cursor:pointer;outline:none}
.r23-wheel .r23-hit{fill:var(--bg);fill-opacity:.001;stroke:none}
.r23-wheel .r23-body:hover .r23-hit{fill:currentColor;fill-opacity:.08}
.r23-wheel .r23-body:focus-visible .r23-hit{stroke:var(--focus);stroke-width:2.5;fill:currentColor;fill-opacity:.08}
.r23-wheel .r23-halo{fill:currentColor;fill-opacity:.12;stroke:currentColor;stroke-width:1.2}
.r23-wheel .r23-body.approx .r23-g{opacity:.78}
.r23-wheel .r23-degree{fill:currentColor;font-size:12px;font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--bg);stroke-width:4px;stroke-linejoin:round}
.r23-wheel.two-rings .r23-degree{font-size:11px}
.r23-wheel .r23-g{stroke-width:1.45}

/* ---- where everything sits */
.r23-register{border-top:1px solid var(--rule);padding-top:6px}
.r23-register summary{min-height:44px;display:flex;align-items:center;font:500 18px/1.2 var(--display);letter-spacing:-.015em;color:var(--ink)}
.r23-register table{width:100%;border-collapse:collapse;font-size:13.5px}
.r23-register th,.r23-register td{padding:0;text-align:left;font-weight:400}
.r23-register thead th{font-size:12px;color:var(--muted);padding:0 6px 6px;white-space:nowrap}
.r23-register thead th small{font-size:11px}
.r23-register thead th.who-a{color:var(--pa)}.r23-register thead th.who-b{color:var(--pb)}
.r23-register tbody tr+tr{border-top:1px solid color-mix(in srgb,var(--rule) 60%,transparent)}
.r23-register tbody th{display:flex;align-items:center;gap:8px;min-height:36px;color:var(--ink);white-space:nowrap}
.r23-reg-glyph{color:var(--muted);flex:none}
.r23-reg-cell{display:flex;justify-content:space-between;gap:8px;width:100%;min-height:36px;padding:4px 6px;border:0;text-align:left;font-variant-numeric:tabular-nums;font-size:13.5px}
.r23-reg-cell.who-a{color:var(--pa)}.r23-reg-cell.who-b{color:var(--pb)}
.r23-reg-cell[aria-pressed="true"]{background:var(--wash)}
.r23-reg-house{color:var(--muted);min-width:2ch;text-align:right}
/* ---- the Marks charts as plates */
.r20-marks-wheel-box:has(.r23-marks-plate){max-width:560px}
.r23-wheel.r23-marks-plate .r23-body{cursor:default}
.r23-wheel .r23-name{fill:currentColor;font-weight:600;paint-order:stroke;stroke:var(--bg);stroke-width:4px;stroke-linejoin:round}
.r23-wheel .r23-body.is-emphasis .r23-hit{fill:currentColor;fill-opacity:.1}
/* ---- the sky on a date */
.r23-sky{border-top:1px solid var(--rule);padding-top:16px;display:grid;gap:14px}
.r23-sky-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.r23-sky-head h4{font:500 22px/1.15 var(--display);letter-spacing:-.02em}
.r23-switch{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--muted);min-height:44px;cursor:pointer}
.r23-switch input{width:20px;height:20px;min-height:0;accent-color:var(--r23-sky)}
.r23-sky-body{display:grid;gap:12px}
.r23-sky-body[hidden]{display:none}
.r23-when{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:10px;align-items:end}
.r23-when label{display:grid;gap:2px;font-size:12.5px;color:var(--muted);min-width:0}
.r23-when small{font-size:11.5px}
.r23-when input{font-size:16px;color:var(--ink);padding:8px 2px;border-bottom:1px solid var(--muted)}
.r23-today{border:1px solid var(--ink);border-radius:999px;padding:6px 16px;min-height:44px}
.r23-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.r23-step{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;border:1px solid var(--rule);border-radius:999px;overflow:hidden}
.r23-step button{min-height:44px;padding:0;border:0;font-size:22px;line-height:1}
.r23-step button:hover{background:var(--wash)}
.r23-step-word{text-align:center;font-size:13px;color:var(--muted)}
.r23-sky-read{font-size:15px;color:var(--ink)}
.r23-sky-intro{font-size:13px;color:var(--muted)}
.r23-sky-intro:empty{display:none}
.r23-sky-note{font-size:14px;color:var(--muted);line-height:1.5}
.r23-sky-list{list-style:none;margin:0;padding:0;display:grid}
.r23-sky-list li+li{border-top:1px solid var(--rule)}
.r23-sky-list button{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;align-items:start;width:100%;text-align:left;padding:10px 4px;border:0;min-height:48px}
.r23-sky-list button[aria-pressed="true"]{background:var(--wash)}
.r23-sky-glyph{color:var(--r23-sky);margin-top:2px}
.r23-sky-words{display:grid;gap:2px;min-width:0}
.r23-sky-main{font-size:15px;line-height:1.35;color:var(--ink)}
.r23-sky-meta{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.r23-sky-more{justify-self:start;border:1px solid var(--rule);border-radius:999px;padding:6px 16px;min-height:44px;font-size:14px}
.r23-how{font-size:14px;color:var(--muted);line-height:1.55}
.r23-how summary{min-height:44px;display:flex;align-items:center;color:var(--ink)}
.r23-how p+p{margin-top:8px}

/* ---- sizes */
@media(max-width:1100px){.r23-plate-grid{grid-template-columns:minmax(0,1fr)}.r23-plate-box{max-width:min(100%,720px)}.r23-side{max-width:720px;margin:0 auto;width:100%}}
@media(max-width:700px){
 .r23-plate-head{grid-template-columns:minmax(0,1fr)}
 .r23-choose{grid-column:1;grid-row:auto;justify-self:start;margin-top:6px}
 .r23-plate-box{max-width:none;margin:0 -8px;width:calc(100% + 16px)}
 .r23-plate-head p{font-size:14.5px}
 .r23-when{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .r23-today{grid-column:1/-1;justify-self:start}
 .r23-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:360px){.r23-choose button{padding:6px 11px;font-size:13px}.r23-step{grid-template-columns:44px minmax(0,1fr) 44px}}
@media(prefers-reduced-motion:reduce){.r23-wheel .r23-line{transition:none}}
.r23-print{display:none}
@media print{
 :root,:root[data-ground=night],:root[data-ground=day]{--wash:#e9e7dc;--r23-sky:#8a5200;--focus:#222720}
 #r23-print:not([hidden]){display:block!important;break-after:page;max-width:182mm;margin:0 auto}
 #r23-print header{border-bottom:1px solid var(--rule);padding-bottom:4mm;margin-bottom:4mm}
 #r23-print h1{font:500 26pt/1.1 var(--display);letter-spacing:-.04em;margin-bottom:2mm}
 #r23-print header p{font-size:9pt;color:var(--muted)}
 .r23-print-grid{display:grid;grid-template-columns:1fr;gap:4mm;justify-items:center}
 .r23-print-wheel{margin:0;width:150mm;max-width:100%}
 .r23-print-wheel svg{width:100%;height:auto;overflow:visible}
 .r23-print-register{width:100%;columns:2;column-gap:8mm;font-size:8pt}
 .r23-print-register table{width:100%;border-collapse:collapse}
 .r23-print-register th,.r23-print-register td{padding:.6mm 1mm;text-align:left;font-weight:400}
 .r23-print-register button{all:unset;display:flex;gap:2mm;justify-content:space-between}
 .r23-print-register svg{width:10px;height:10px}
}
@media(min-width:721px) and (max-width:960px){.result-tabs{gap:10px}.result-tabs button{padding-inline:8px}.result-tabs .r22-tab-line{max-width:19ch}}
/* ---- four tabs: on a narrow screen they sit two by two, every name whole (no sideways scroll) */
@media(max-width:720px){
 .result-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;max-width:100%;gap:0 8px}
 .result-tabs button{width:100%;min-width:0;padding-inline:4px}
 .result-tabs .r22-tab-line{max-width:none}
}
/* Round 24 (rule 7am): the one-line reading under each transit, in quiet type after the closeness line. */
.r24-sky-reading{font-size:14px;line-height:1.5;color:var(--muted);margin-top:4px;max-width:62ch}
/* Round 25 merge fix: the positions table grew with the ℞ marks and pushed a 320 px phone 44 px sideways. The table now scrolls inside its own box; the column never grows past the screen. */
.r23-plate-grid,.r23-side{min-width:0}
.r23-plate-grid>*{min-width:0}
.r23-register{min-width:0;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}

/* Round 27 (review P1-12, lead ruling 8): the Davison chart's own "What shapes it most", five plain lines
   in the side column, above the planet focus; set like the "The sky on a date" block below it. */
.r27-davison-reading{margin:0 0 24px;padding:0 0 20px;border-bottom:1px solid var(--rule)}
.r27-davison-reading h3{font:500 22px/1.15 var(--display);letter-spacing:-.02em;margin:0 0 14px}
.r27-davison-reading ol{list-style:none;margin:0;padding:0;display:grid;gap:14px;counter-reset:dav}
.r27-davison-reading li{counter-increment:dav;display:grid;grid-template-columns:1.6em 1fr;column-gap:8px}
.r27-davison-reading li::before{content:counter(dav);grid-row:1 / span 2;font:500 16px/1.4 var(--display);color:var(--muted)}
.r27-davison-reading .r27-dav-name{margin:0;font-size:14px;line-height:1.4;color:var(--muted)}
.r27-davison-reading .r27-dav-name b{font-weight:600;color:var(--ink)}
.r27-davison-reading .r27-dav-line{margin:2px 0 0;font-size:16px;line-height:1.5;color:var(--ink);max-width:65ch}
