:root {
  --paper:#f7f5f0;
  --ink:#233d37;
  --muted:#66746d;
  --line:#dcded4;
  --accent:#a47850;
  --white:#fffefa;
}
* {
  box-sizing:border-box;
}
.reading-price-amount {
  font:48px/1.1 Georgia,serif;
  margin:12px 0;
}
.reading-price-compact .reading-price-amount {
  font-size:36px;
}
.reading-price-regular {
  color:var(--muted);
  font-size:14px;
  margin:6px 0;
}
.reading-price-regular s {
  text-decoration-thickness:2px;
}
.reading-price-payment {
  margin:8px 0 16px;
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:16px/1.6 system-ui,-apple-system,sans-serif;
}
a {
  color:inherit;
  text-underline-offset:4px;
}
header {
  max-width:1360px;
  margin:auto;
  padding:28px 5%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  gap:20px;
}
.brand {
  display:inline-flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
  text-decoration:none;
  font:27px Georgia,serif;
  white-space:nowrap;
}
.brand-mark {
  display:block;
  width:48px;
  height:48px;
  object-fit:contain;
  flex:0 0 48px;
}
nav {
  display:flex;
  align-items:center;
  gap:22px;
  font-size:14px;
}
nav form {
  margin:0;
}
nav a {
  text-decoration:none;
}
main {
  max-width:1240px;
  margin:auto;
  padding:52px 32px 80px;
  min-height:75vh;
}
footer {
  padding:24px 5%;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:var(--muted);
  font-size:12px;
}
h1,h2,h3 {
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  line-height:1.17;
  letter-spacing:-.035em;
}
h1 {
  font-size:clamp(38px,4.5vw,62px);
  margin:16px 0 22px;
}
h2 {
  font-size:30px;
  margin:12px 0 22px;
}
h3 {
  font-size:28px;
}
p {
  margin:12px 0 22px;
}
em {
  font-weight:400;
  color:var(--accent);
}
.eyebrow {
  font:11px/1.6 system-ui,sans-serif;
  letter-spacing:.19em;
  font-weight:650;
  color:var(--muted);
}
.lede {
  font-size:18px;
  line-height:1.8;
  color:var(--muted);
  max-width:560px;
}
.small {
  font-size:13px;
  line-height:1.7;
  color:var(--muted);
}
.panel {
  background:var(--white);
  border:1px solid var(--line);
  border-radius:14px;
  padding:30px;
}
.auth-grid {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:90px;
  align-items:center;
}
.auth-panel {
  max-width:450px;
  width:100%;
  padding:38px;
}
.intro {
  padding:10px 0;
}
.orbital {
  height:185px;
  width:185px;
  border:1px solid #bebcac;
  border-radius:50%;
  margin:40px 0;
  position:relative;
  display:grid;
  place-items:center;
  font:64px Georgia;
  color:var(--accent);
  transform:rotate(-20deg);
}
.orbital:before,.orbital:after {
  content:'';
  position:absolute;
  inset:20px;
  border:1px solid #d9d4c5;
  border-radius:50%;
}
.orbital:after {
  inset:45px;
}
.orbital i {
  position:absolute;
  left:-30px;
  right:-30px;
  border-top:1px solid #d9d4c5;
}
.orbital b {
  position:absolute;
  right:-9px;
  top:77px;
  font-size:30px;
  background:var(--paper);
}
label {
  display:block;
  font-size:13px;
  font-weight:550;
  margin:18px 0 7px;
}
input,select,textarea {
  display:block;
  width:100%;
  margin-top:7px;
  padding:12px 13px;
  background:#fff;
  border:1px solid #cbd0c6;
  border-radius:6px;
  color:var(--ink);
  font:15px system-ui;
  min-height:45px;
}
textarea {
  resize:vertical;
}
input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:3px;
}
button,.primary {
  cursor:pointer;
  border:1px solid var(--line);
  padding:12px 20px;
  border-radius:6px;
  background:white;
  color:var(--ink);
  font:14px/1.4 system-ui;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.primary {
  background:var(--ink);
  color:white;
  border-color:var(--ink);
}
.wide {
  width:100%;
  margin-top:28px;
}
.quiet {
  padding:7px 0;
  background:none;
  border:0;
  font-size:13px;
}
.two {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
.page-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-bottom:32px;
}
.page-heading p {
  color:var(--muted);
}
.page-heading h1 {
  margin:8px 0 16px;
}
.reading-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.reading-card {
  text-decoration:none;
  transition:border-color .2s;
}
.reading-card h2 { margin:24px 0 14px; }
.reading-card h2 a { color:inherit; text-decoration:none; }
.card-report-progress { display:grid; gap:10px; margin:24px 0; }
.card-report-progress progress { width:100%; height:10px; accent-color:var(--ink); }
.card-bottom { gap:12px; flex-wrap:wrap; }
.test-reading-delete { margin-top:18px; font-size:13px; }
.test-reading-delete summary { cursor:pointer; color:var(--muted); }
.test-reading-delete label { display:flex; align-items:flex-start; gap:10px; font-size:13px; }
.test-reading-delete input[type="checkbox"] { width:auto; margin:4px 0 0; }
.test-reading-delete button { padding:10px 14px; font-size:13px; }
.reading-card:hover {
  border-color:var(--accent);
}
.card-symbol {
  font:60px Georgia;
  color:var(--accent);
  margin:30px 0;
}
.card-bottom {
  display:flex;
  justify-content:space-between;
  border-top:1px solid var(--line);
  padding-top:18px;
  font-size:12px;
  color:var(--muted);
}
.status {
  font-size:12px;
  background:#e8ece4;
  color:#436050;
  padding:5px 11px;
  border-radius:30px;
  display:inline-block;
}
.empty {
  grid-column:1/-1;
  padding:60px;
  text-align:center;
}
.form-grid {
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:40px;
}
.form-grid h2 {
  font-size:22px;
  color:var(--accent);
  margin-top:30px;
}
.form-grid h2 span {
  color:var(--ink);
  margin-left:16px;
}
.form-grid h2:first-child {
  margin-top:0;
}
.muted-panel {
  background:#e9ece3;
}
.steps {
  padding-left:20px;
}
.steps li {
  padding:12px 0;
}
.attribution {
  margin-left:20px;
}
.back {
  font-size:13px;
  text-decoration:none;
  color:var(--muted);
}
details {
  margin-top:26px;
}
summary {
  cursor:pointer;
  font-size:14px;
}
.notice {
  padding:20px 26px;
  border:1px solid #c1cbbb;
  border-radius:9px;
  background:#e9ece3;
  margin-bottom:24px;
}
.error {
  background:#fff3ee;
  border-color:#c89c89;
}
.report-grid {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:25px;
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
}
.section-heading select {
  width:auto;
}
.section-heading label {
  margin:0;
}
.chart-panel {
  padding:20px;
}
#chart svg {
  width:100%;
  height:auto;
  display:block;
}
.table-wrap {
  overflow-x:auto;
}
table {
  border-collapse:collapse;
  width:100%;
  font-size:13px;
}
th {
  text-align:left;
  font-size:11px;
  color:var(--muted);
  font-weight:500;
}
td,th {
  padding:8px 6px;
  border-bottom:1px solid #ecece5;
}
.map-panel {
  margin-top:28px;
}
#world-map svg {
  display:block;
  width:100%;
  height:auto;
  background:#edf1ec;
  border-radius:8px;
}
.legend {
  display:flex;
  gap:20px;
  flex-wrap:wrap;
  font-size:12px;
  margin:18px 0;
}
.legend span {
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.angle-legend {
  color:var(--muted, #67716b);
}
.legend i {
  display:inline-block;
  width:14px;
  height:3px;
  margin:0;
}
.interpretation {
  max-width:780px;
  margin:70px auto;
}
.interpretation h2 {
  font-size:42px;
}
.interpretation .lede {
  max-width:none;
}
.interpretation section {
  border-top:1px solid var(--line);
  margin-top:30px;
  padding-top:12px;
}
.prose {
  white-space:pre-line;
  line-height:1.9;
}
#places {
  position:relative;
}
#places button {
  display:block;
  width:100%;
  text-align:left;
  border-radius:0;
  font-size:13px;
}
#places button[aria-selected=true] {
  background:#e9ece3;
}
.skip {
  position:absolute;
  top:-100px;
}
.skip:focus {
  top:10px;
  left:10px;
  background:white;
  padding:10px;
  z-index:10;
}
@media(max-width:850px) {
  .auth-grid {
    gap:35px;
  }
  .reading-grid {
    grid-template-columns:1fr 1fr;
  }
  .report-grid,.form-grid {
    grid-template-columns:1fr;
  }
  .muted-panel h2 {
    font-size:24px;
  }
}
@media(max-width:600px) {
  header {
    padding:20px;
    align-items:flex-start;
    flex-wrap:wrap;
  }
  nav {
    gap:18px;
  }
  main {
    padding:30px 20px 50px;
  }
  .auth-grid {
    grid-template-columns:1fr;
  }
  .orbital {
    display:none;
  }
  .auth-panel {
    max-width:none;
    padding:25px;
  }
  .reading-grid {
    grid-template-columns:1fr;
  }
  .page-heading {
    align-items:flex-start;
    flex-direction:column;
  }
  .panel {
    padding:22px;
  }
  .two {
    gap:12px;
  }
  footer {
    flex-direction:column;
  }
  .intro h1 {
    font-size:40px;
  }
  .intro .small {
    display:none;
  }
  .section-heading {
    flex-wrap:wrap;
  }
  .empty {
    padding:30px;
  }
  .interpretation h2 {
    font-size:34px;
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    transition:none!important;
  }
}

.reading-progress { max-width:760px; margin:32px auto; }
.reading-progress progress { width:100%; height:10px; border:0; border-radius:20px; overflow:hidden; appearance:none; background:#e7ebe3; accent-color:#367b60; margin:18px 0 26px; }
.reading-progress progress::-webkit-progress-bar { background:#e7ebe3; border-radius:20px; }
.reading-progress progress::-webkit-progress-value { background:#367b60; border-radius:20px; transition:width .3s; }
.reading-progress progress::-moz-progress-bar { background:#367b60; }
.progress-tasks { list-style:none; padding:0; margin:0; display:grid; gap:24px; }
.progress-tasks li { display:flex; align-items:center; gap:14px; }
.task-icon { width:26px; height:26px; flex:0 0 26px; border:2px solid #d7ded4; border-radius:50%; display:grid; place-items:center; font-size:16px; }
[data-step-state="done"] .task-icon { background:#367b60; border-color:#367b60; color:white; }
[data-step-state="active"] .task-icon { border-top-color:#367b60; animation:progress-spin 1s linear infinite; }
[data-step-state="pending"] { color:#737c73; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
@keyframes progress-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { [data-step-state="active"] .task-icon { animation:none; } .reading-progress progress::-webkit-progress-value { transition:none; } }

.export-toolbar { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:14px; margin:0 0 24px; }

.maya-panel { margin-top:28px; }
.maya-day { text-align:center; padding:18px 0; }
.maya-day h3 { font-size:40px; margin:14px 0; }
.maya-day p { color:var(--muted); }
.maya-values { max-width:620px; margin:0 auto 24px; font-size:16px; }
.maya-values th { font-size:14px; width:45%; }

.hd-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem;align-items:center}.hd-figure{margin:0}.hd-figure img{width:100%;height:auto;max-height:560px}.hd-figure figcaption{margin-top:1rem}.hd-values h3{font-size:1.8rem}.hd-activations{margin-top:2rem}.hd-design-value{color:#a33d36}@media(max-width:700px){.hd-overview{grid-template-columns:1fr}.hd-figure img{max-height:450px}}

/* Development comparison workspace */
.lab-editor{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.85rem;line-height:1.65;tab-size:2;resize:vertical;white-space:pre-wrap;overflow-wrap:anywhere}
.lab-controls{display:grid;grid-template-columns:180px minmax(220px,1fr) auto;gap:18px;align-items:end;margin:22px 0}
.lab-controls button{margin-bottom:0}.lab-run{padding:24px 0;border-top:1px solid #d8dfd2}.lab-run h3{margin:0}.lab-actions{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}.lab-hashes{font-family:ui-monospace,monospace;overflow-wrap:anywhere}.lab-entry{margin-bottom:24px}.lab-editor[readonly]{background:#f4f6f2}
@media(max-width:760px){.lab-controls{grid-template-columns:1fr}.lab-controls button{width:100%}}
.generation-statistics { margin: 1.5rem 0; padding: 1.25rem; border: 1px solid var(--border, #d7dcd3); border-radius: 12px; }
.generation-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 1rem; margin: 1rem 0; }
.generation-metrics dt { font-size: .8rem; color: var(--muted, #596b64); }
.generation-metrics dd { margin: .4rem 0 0; font-size: 1.1rem; font-variant-numeric: tabular-nums; }

.source-tabs { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1rem; }
.source-tabs a { border: 1px solid #d7dcd3; border-radius: 8px; padding: .8rem 1rem; text-decoration: none; }
.source-tabs a[aria-current="page"] { background: #233d37; color: white; }
.source-tabs a[aria-current="page"] .small { color: inherit; }
.placeholder-buttons { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0; }
.placeholder-buttons button { padding: .5rem .7rem; font-size: .8rem; }
.source-selection { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; margin-bottom: 1rem; }

/* Account settings */
.account-heading{max-width:780px;margin:40px 0 26px}.account-heading h1{font-size:clamp(2.2rem,5vw,4rem)}.account-nav{display:flex;flex-wrap:wrap;gap:12px 28px;margin:22px 0 30px}.account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.account-grid .panel{min-width:0;scroll-margin-top:24px}.account-wide{grid-column:1/-1}.account-auth{max-width:640px;margin:48px auto}.account-auth h1{font-size:clamp(1.8rem,4vw,2.7rem)}.account-grid details,.account-auth details{margin-top:26px}.account-grid summary,.account-auth summary{cursor:pointer;font-weight:600;padding:8px 0}.account-grid .primary,.account-auth .primary{display:inline-flex;text-decoration:none;align-items:center;justify-content:center}.invoice-row{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:18px 0;border-top:1px solid #d9dfd9}.invoice-row p{margin:6px 0 0}.account-danger{border-color:#bc8d7b}.primary.danger{background:#813f32;color:#fff}.account-checkbox{display:flex;align-items:flex-start;gap:12px}.account-checkbox input{width:18px;flex:0 0 18px;margin-top:4px}.account-qr{background:white;padding:16px;width:fit-content;max-width:100%;margin:20px 0}.account-qr svg{display:block;max-width:100%;height:auto}.account-secret{overflow-wrap:anywhere}.account-codes{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:20px;list-style:none;background:#f3f4ed}.account-codes code{font-size:1rem}@media(max-width:720px){.account-grid{grid-template-columns:1fr}.account-auth{margin:24px auto}.invoice-row{flex-wrap:wrap}.account-nav{gap:12px 20px}}

/* The birth calendar follows the reading language, independent of browser locale. */
[hidden] { display:none !important; }
.date-picker { position:relative; }
.date-field { display:flex; gap:6px; align-items:center; }
.date-field input { min-width:0; margin-top:0; }
.date-field button { padding:12px; margin-top:0; flex-shrink:0; min-height:45px; }
.birth-calendar { position:absolute; top:54px; left:0; z-index:10; width:320px; max-width:calc(100vw - 86px); padding:14px; background:var(--white); border:1px solid var(--line); border-radius:10px; box-shadow:0 10px 30px #233d3726; }
.calendar-nav { display:flex; align-items:center; gap:6px; }
.calendar-nav select { width:auto; min-width:0; margin:0; padding:8px 4px; flex:1; }
.calendar-nav #calendar-year { flex:0 0 72px; }
.calendar-nav button { padding:8px; font-size:24px; line-height:1; }
.calendar-nav button:disabled { opacity:.35; cursor:default; }
.calendar-grid { width:100%; table-layout:fixed; border-collapse:separate; border-spacing:2px; margin:12px 0; }
.calendar-grid th,.calendar-grid td { padding:0; border:0; text-align:center; }
.calendar-grid th { font-size:12px; color:var(--muted); padding-bottom:6px; }
.calendar-grid button { display:block; width:100%; min-height:36px; padding:6px 0; border:1px solid transparent; text-align:center; }
.calendar-grid button:hover { background:var(--paper); border-color:var(--accent); }
.calendar-grid button[aria-current="date"] { border-color:var(--accent); }
.calendar-grid td[aria-selected="true"] button { background:var(--ink); color:white; }
.calendar-actions { display:flex; justify-content:space-between; gap:8px; border-top:1px solid var(--line); padding-top:10px; }
.calendar-actions button { padding:8px 12px; }

@media(max-width:600px) { .birth-datetime { grid-template-columns:1fr; } }

.reading-tabs { display:flex; gap:8px; flex-wrap:wrap; padding:8px; background:#e9ece3; border-radius:10px; margin:28px 0 16px; }
.reading-tabs [role="tab"] { display:block; flex:1; text-align:center; padding:12px 20px; border-radius:7px; white-space:nowrap; }
.reading-tabs [aria-selected="true"] { background:var(--ink); color:var(--white); }
.reading-overview { margin-bottom:24px; }
.reading-stack { display:flex; flex-direction:column; gap:28px; min-width:0; }
.reading-stack > .panel,.reading-stack > .report-grid,.reading-stack > .map-panel,.reading-stack > .maya-panel { margin-block:0; }
.reading-stack > h2 { margin:12px 0 0; }
.reading-stack .panel { min-width:0; }
.reading-result-card .section-heading { align-items:flex-start; }
.reading-result-card h2 { font-size:27px; margin:0; }
.reading-generation-actions { display:flex; align-items:center; flex-wrap:wrap; gap:16px; margin-top:24px; }
.reading-generation-actions form { margin:0; }
.reading-generation-actions button:disabled { opacity:.5; cursor:not-allowed; }
.reading-batch { margin:0 0 28px; }
.reading-batch h2 { margin:0; font-size:27px; }
.reading-batch progress { display:block; width:100%; height:16px; border:0; border-radius:8px; overflow:hidden; appearance:none; background:#e2e9e3; accent-color:var(--accent); }
.reading-batch progress::-webkit-progress-bar { background:#e2e9e3; border-radius:8px; }
.reading-batch progress::-webkit-progress-value { background:var(--accent); border-radius:8px; }
.reading-batch progress::-moz-progress-bar { background:var(--accent); border-radius:8px; }
.reading-batch form { margin-top:20px; }
.reading-batch button:disabled { opacity:.5; cursor:not-allowed; }
.interpretation-text h3 { font-size:25px; margin-top:24px; }
.interpretation-section { margin-top:28px; }
.interpretation-section h4 { font:22px Georgia,serif; margin:0 0 14px; }
.interpretation-section .prose { white-space:pre-line; }
.report-references { overflow-wrap:anywhere; }
.reflection { border-left:3px solid var(--accent); padding-left:16px; }
.birth-input-table th { width:45%; }
.birth-input-table td { overflow-wrap:anywhere; }
.comparison-bar { height:12px; border-radius:3px; background:#e2e9e3; margin:8px 0; }
.comparison-bar > div { height:12px; background:#24483d; border-radius:3px; }
@media(max-width:600px) { .reading-tabs { gap:4px; padding:4px; } .reading-tabs [role="tab"] { padding:12px 8px; font-size:14px; } .reading-stack { gap:24px; } }

.reading-result-card > summary { cursor:pointer; }
.reading-result-card > summary .section-heading { display:inline-flex; width:calc(100% - 24px); margin:0; gap:16px; vertical-align:middle; }
.reading-result-card[open] > summary { margin-bottom:24px; }
.reading-result-card > summary:focus-visible { outline:2px solid var(--accent); outline-offset:8px; }
.batch-stages { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:8px 24px; padding-left:24px; margin:24px 0; }
.batch-stages li { padding:8px; }
.batch-stages .status { display:block; width:fit-content; margin-top:6px; font-size:12px; }
.batch-stages .is-active { background:#e2e9e3; border-left:3px solid var(--accent); border-radius:4px; font-weight:600; }
.speech-toolbar { position:sticky; top:12px; z-index:20; display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:16px; margin:0 0 24px; border:1px solid #d8dfd2; border-radius:12px; background:#edf1ec; box-shadow:0 4px 16px #233d3714; }
.speech-toolbar label { display:flex; align-items:center; gap:10px; margin:0; }
.speech-toolbar select { width:auto; margin:0; }
.speech-toolbar .speech-status { flex-basis:100%; margin:0; }
.speech-toolbar button:disabled { opacity:.5; cursor:not-allowed; }
.interpretation-text > [data-speech-controls], .interpretation-section > [data-speech-controls], .synthesis-comparison [data-speech-controls] { margin:0 0 14px; font-size:14px; padding:8px 12px; }
@media print { [data-speech-controls] { display:none !important; } }

.reading-audio { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; margin:1rem 0; }
.reading-audio audio { width:100%; max-width:30rem; }
.reading-audio-description { flex-basis:100%; }
.reading-audio-description p { margin:0 0 .4rem; }

/* Admin statistics retain readable columns on smaller screens. */
.backoffice-table {overflow-x:auto; margin-block:1rem}
.backoffice-table table {width:100%; border-collapse:collapse; text-align:left; font-size:.9rem}
.backoffice-table th,.backoffice-table td {padding:.8rem; border-bottom:1px solid var(--border, #dedfd4); vertical-align:top}
.backoffice-table th {font-weight:600; white-space:nowrap}
.reading-tabs a[aria-current="page"] {color:var(--ink, #253f35); border-bottom:2px solid currentColor; font-weight:600}
.backoffice-pagination svg {width:1.25rem; height:1.25rem}
