/* Public reading palette. Decorations stay outside the main reading surface. */
:root {
  --heading-main: #123B4A;
  --heading-secondary: #176B73;
  --reading-background: #F7FAF8;
  --reading-surface: #FFFFFF;
  --reading-text: #1F2937;
  --reading-border: #D8E5E1;
  --action-background: #1D5F7A;
  --action-text: #FFFFFF;
  --ink: var(--reading-text);
  --navy: var(--heading-main);
  --green: var(--heading-secondary);
  --paper: var(--reading-background);
  --surface: var(--reading-surface);
  --text: var(--reading-text);
  --muted: #43535C;
  --line: var(--reading-border);
  --border: var(--reading-border);
  --primary: var(--action-background);
  --accent: var(--heading-secondary);
}
body { background: var(--reading-background); color: var(--reading-text); }
main:not(.auth-main), .page { background: var(--reading-background); }
main :is(h1,h2), .page-heading h1, .section-heading h2 { color: var(--heading-main); }
main :is(h3,h4), .knowledge-card h3, .research-area-card h3 { color: var(--heading-secondary); }
main :is(.page-heading,.path-card,.knowledge-card,.research-area-card,.resource-card,.work-panel,.purpose-grid,.auth-card) p:not(.eyebrow),
.page .purpose-copy, .page .objectives, .page .paper-summary, .page .paper-meta,
.page .research-tool-name, .page .resource-card small { color: var(--reading-text); }
.page :is(.eyebrow.muted,.text-link), .auth-main .text-link { color: var(--heading-secondary); }
.page :is(.path-card,.paper-card,.resource-card,.update-card,.work-panel,.knowledge-card,.research-area-card),
.auth-main .auth-card, .reader-site-header, .reader-navigation, .reader-navigation .nav-dropdown {
  background-color: var(--reading-surface); border-color: var(--reading-border);
}
.reader-site-header .header-inner {
  max-width: var(--nav-max-width,100%);
  padding-inline: var(--nav-gutter,32px);
  padding-block: 18px 14px;
}
.reader-site-header .brand-wordmark { width: 228px; }
.reader-navigation {
  width: 100%; max-width: var(--nav-max-width,100%);
  justify-content: var(--nav-distribution,space-between); gap: var(--nav-gap,28px);
  padding-inline: var(--nav-gutter,32px);
  border-top: 1px solid var(--reading-border);
}
.reader-navigation > .nav-link, .reader-navigation > .nav-group > summary {
  font-size: var(--nav-label-size,16px); line-height: 1.5; color: var(--heading-main);
  padding: var(--nav-padding-block,18px) var(--nav-padding-inline,8px); min-height: 44px; flex-shrink: 0;
}
.reader-navigation > .nav-link:first-child { padding-inline-start: 0; }
.reader-navigation > .nav-link:last-child { padding-inline-end: 0; }
.reader-navigation > .nav-group { flex-shrink: 0; }
.reader-navigation > .nav-group[data-nav-group=resources] .nav-dropdown { left: auto; right: 0; }
.reader-navigation .nav-dropdown > .nav-link { font-size: 15px; min-height: 44px; }
.reader-navigation > .nav-link:hover, .reader-navigation > .nav-group > summary:hover { color: var(--heading-secondary); }
.reader-navigation > .nav-link.active, .reader-navigation > .nav-group.active > summary,
.reader-navigation > .nav-group[open] > summary { color: var(--heading-secondary); }
.reader-navigation > .nav-group[data-nav-group=tools] > summary {
  color: var(--heading-secondary); background: color-mix(in srgb,var(--heading-secondary) 7%,var(--reading-surface));
}
.reader-navigation > .nav-link.active:after, .reader-navigation > .nav-group.active > summary:after {
  background: var(--heading-secondary);
}
.reader-navigation .nav-dropdown { border-top-color: var(--heading-secondary); }
.reader-navigation .nav-dropdown > .nav-link { color: var(--heading-main); }
.reader-navigation .nav-dropdown > .nav-link:is(:hover,:focus-visible,.active) {
  color: var(--heading-secondary); background: color-mix(in srgb,var(--heading-secondary) 7%,var(--reading-surface));
}
.reader-site-header :is(.sign-link,.language-label select), .header-visit-count { color: var(--heading-main); }
.header-visit-count { background: var(--reading-background); border-color: var(--reading-border); }
.hero { color: var(--reading-text); background: var(--reading-surface); border: 1px solid var(--reading-border); box-shadow: 0 8px 28px #123B4A08; }
.hero-copy h1 { color: var(--heading-main); }
.hero-copy > p:not(.eyebrow), .hero-bottom, .hero-bottom small { color: var(--reading-text); }
#hero-description { color: var(--reading-text); }
.hero-copy .eyebrow, .hero-secondary, .hero-bottom b { color: var(--heading-secondary); }
.hero-bottom { border-top-color: var(--reading-border); }
.hero .hero-image { color: #FFFFFF; }
.subscribe-band { background: var(--reading-surface); border: 1px solid var(--reading-border); color: var(--reading-text); }
.subscribe-band h2 { color: var(--heading-main); }
.subscribe-band p, .subscribe-band label, .subscribe-band .check { color: var(--reading-text); }
.subscribe-band .eyebrow { color: var(--heading-secondary); }
/* Deep blue-teal emphasis with readable light labels. */
.button-green, .button-mint, .hero .button-mint, .reader-site-header #user-actions .button-green,
.field-form-actions :is(.calculation-primary-action,button[type=submit]),
#balance-form button[type=submit], .validation-compare-action, #validation-analyze {
  background: var(--action-background); border-color: var(--action-background);
  color: var(--action-text); font-weight: 700;
}
.button-green:hover, .button-mint:hover, .hero .button-mint:hover, .reader-site-header #user-actions .button-green:hover,
.field-form-actions button[type=submit]:hover, #balance-form button[type=submit]:hover,
.validation-compare-action:hover, #validation-analyze:hover {
  background: var(--action-hover,var(--action-background)); border-color: var(--heading-main);
  color: var(--action-hover-text,var(--action-text)); box-shadow: inset 0 0 0 1px var(--heading-main);
}
.button-light, .reader-site-header #user-actions .button-light {
  color: var(--heading-secondary); background: var(--reading-surface); border-color: var(--control-border,#637B74);
}
.field-input-panel, .field-result-panel, .tool-validation-panel, .balance-results,
.validation-workspace > *, .field-chart, .chart-card {
  background: var(--reading-surface); background-image: none; border-color: var(--reading-border);
}
.page .path-card { box-shadow: 0 3px 12px #123B4A04; }
.page .path-card:hover { border-color: var(--heading-secondary); box-shadow: 0 6px 18px #123B4A0D; }
.field-result-panel .field-result-top, .field-result-values .field-primary-result,
.balance-results #balance-result-title, .calculation-result-heading, #validation-result-title {
  background: var(--action-background); color: var(--action-text);
}
.field-result-panel .field-result-top :is(h3,.field-step,.text-link),
.field-result-values .field-primary-result :is(dt,dd,dd span) { color: var(--action-text); }
.field-result-panel .field-result-top .field-scenario {
  color: var(--heading-main); background: var(--reading-surface); border-color: var(--reading-surface);
}
.field-result-panel :is(.field-export-actions,.field-csv-options) .button {
  background: var(--action-background); color: var(--action-text); border-color: var(--action-background);
}
.field-result-panel :is(.field-export-actions,.field-csv-options) .button:hover {
  background: var(--action-hover,var(--action-background)); color: var(--action-hover-text,var(--action-text)); border-color: var(--heading-main);
}
.field-result-panel .field-export-actions .text-link, .balance-results .eyebrow,
.research-area-card .research-tool-link { color: var(--heading-secondary); }
.tool-validation-panel > summary { color: var(--secondary-on,#FFFFFF); background: var(--heading-secondary); }
.tool-validation-context { color: var(--reading-text); }
.edition-card { background: var(--reading-surface); color: var(--reading-text); border: 1px solid var(--reading-border); }
.edition-card :is(strong,h2) { color: var(--heading-main); }
.edition-card :is(span,small) { color: var(--heading-secondary); }
.edition-card p { color: var(--reading-text); }
.balance-results { color: var(--reading-text); border: 1px solid var(--reading-border); }
.balance-primary { background: var(--action-background); padding: 16px; border-radius: 7px; }
.balance-primary :is(span,strong,small) { color: var(--action-text); }
.balance-results :is(.meter-labels,.scenario-help,.balance-values dt,.balance-values dd) { color: var(--reading-text); }
.balance-values > div { border-color: var(--reading-border); }
#balance-status { background: var(--reading-background); color: var(--reading-text); }
#balance-status.threshold-reached { background: #EAF2F4; color: #123B4A; }
.balance-results #balance-export-actions .button { background: var(--action-background); color: var(--action-text); border-color: var(--action-background); }
input:not([type=checkbox]):not([type=radio]), select, textarea {
  color: var(--reading-text); background-color: var(--reading-surface); border-color: var(--control-border,#637B74);
}
input::placeholder, textarea::placeholder { color: var(--reading-text); opacity: 1; }
input[type=checkbox], input[type=radio] { accent-color: var(--heading-secondary); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible, .reader-site-header :focus-visible,
.field-result-panel button:focus-visible, .field-form-actions button:focus-visible,
#balance-form button:focus-visible, .tool-validation-panel > summary:focus-visible,
.field-result-panel .field-result-top a:focus-visible {
  outline: 3px solid var(--focus-color,var(--heading-main)); outline-offset: 4px;
}
.field-result-panel button:disabled, #validation-analyze:disabled,
.button-green:disabled { background: #E7ECEA; color: #43535C; border-color: var(--control-border,#637B74); opacity: 1; }
/* Faint, static concentric contours only in the outer margins of wide screens. */
@media(min-width:1540px) {
  body {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='180'%3E%3Cg fill='none' stroke='%23176B73' stroke-width='.65' opacity='.045'%3E%3Ccircle cx='20' cy='45' r='6'/%3E%3Ccircle cx='20' cy='45' r='12'/%3E%3Ccircle cx='20' cy='45' r='18'/%3E%3Ccircle cx='20' cy='135' r='5'/%3E%3Ccircle cx='20' cy='135' r='10'/%3E%3Ccircle cx='20' cy='135' r='15'/%3E%3C/g%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='180'%3E%3Cg fill='none' stroke='%23176B73' stroke-width='.65' opacity='.045'%3E%3Ccircle cx='20' cy='90' r='6'/%3E%3Ccircle cx='20' cy='90' r='12'/%3E%3Ccircle cx='20' cy='90' r='18'/%3E%3C/g%3E%3C/svg%3E");
    background-position: left 180px,right 180px; background-size: 40px 180px; background-repeat: repeat-y;
  }
}
@media(max-width:1100px) {
  .reader-navigation { display: none; flex-direction: column; justify-content: flex-start; gap: 0; padding: 5px 24px 14px; }
  .reader-navigation.open { display: flex; }
  .reader-site-header .menu-toggle { display: block; min-height: 44px; min-width: 44px; padding: 7px; border: 1px solid var(--control-border,#637B74); border-radius: 6px; background: var(--reading-surface); color: var(--heading-main); }
  .reader-navigation > .nav-link, .reader-navigation > .nav-group > summary { padding: 12px 10px; justify-content: space-between; min-height: 48px; font-size: 16px; }
  .reader-navigation > .nav-link:first-child { padding-inline-start: 10px; }
  .reader-navigation > .nav-link:last-child { padding-inline-end: 10px; }
  .reader-navigation .nav-dropdown { position: static; min-width: 0; max-width: none; margin: 0 0 8px 13px; border: 0; border-left: 2px solid var(--control-border,#637B74); border-radius: 0; padding: 4px 5px; box-shadow: none; }
}
@media(max-width:520px) { .reader-site-header .header-inner { padding-inline: 14px; } .reader-navigation { padding-inline: 14px; } }
@media(max-width:600px) {
  .reader-site-header .header-inner { flex-wrap: wrap; gap: 12px; padding: 14px 18px; }
  .reader-site-header .logo-brand { flex: 1 0 calc(100% - 60px); }
  .reader-site-header .logo-brand .brand-wordmark { width: 205px; max-width: 100%; }
  .reader-site-header .header-actions { display: contents; }
  .reader-site-header .menu-toggle { order: 1; align-self: center; min-height: 44px; min-width: 44px; }
  .reader-site-header .header-account-block { order: 3; flex: 1 1 auto; align-items: flex-start; }
  .reader-site-header #user-actions { gap: 14px; }
  .reader-site-header .sign-link { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; }
  .reader-site-header #user-actions .button { min-height: 44px; font-size: 13px; padding: 10px 15px; }
  .reader-site-header .language-label { order: 4; margin: 0 0 0 auto; }
  .reader-site-header .language-label select { width: 116px; min-height: 44px; font-size: 13px; }
  .reader-navigation { padding-inline: 18px; }
  .hero-copy { padding: 26px 22px; }
  .hero-copy h1 { font-size: clamp(30px,8vw,40px); overflow-wrap: break-word; }
}
/* Owner's stronger-contrast mode remains available. */
html[data-colour-visibility=high] { --heading-main: #102A38; --heading-secondary: #064E43; --reading-background: var(--reading-surface); --reading-text: #102A38; --reading-border: #657782; }
html[data-colour-visibility=high] body { background-image: none; }
@media print { body, main:not(.auth-main), .page { background: var(--reading-surface); background-image: none; } }

/* Custom desktop spacing collapses to a menu whenever the row cannot fit. */
.reader-site-header[data-nav-collapsed] .reader-navigation { display: none; flex-direction: column; justify-content: flex-start; gap: 0; padding: 5px min(var(--nav-gutter,32px),24px) 14px; }
.reader-site-header[data-nav-collapsed] .reader-navigation.open { display: flex; }
.reader-site-header[data-nav-collapsed] .menu-toggle { display: block; min-height: 44px; min-width: 44px; padding: 7px; border: 1px solid var(--control-border,#637B74); border-radius: 6px; background: var(--reading-surface); color: var(--heading-main); }
.reader-site-header[data-nav-collapsed] .reader-navigation > .nav-link,
.reader-site-header[data-nav-collapsed] .reader-navigation > .nav-group > summary { padding: 12px 10px; justify-content: space-between; min-height: 48px; font-size: var(--nav-label-size,16px); }
.reader-site-header[data-nav-collapsed] .nav-dropdown { position: static; min-width: 0; max-width: none; margin: 0 0 8px 13px; border: 0; border-left: 2px solid var(--control-border,#637B74); border-radius: 0; padding: 4px 5px; box-shadow: none; }
