@import url("/static/site-fonts.css?v=2026091041");
/* Match cthau.js before its first pass, including server-rendered audio blocks. */
.cth-au .aud-main{display:grid!important;grid-template-columns:minmax(0,1fr);align-items:center;gap:12px!important}
.cth-au .audm{width:100%;min-width:0}
.cth-au .aud-controls{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cth-au .audt{display:flex;justify-content:space-between;font-variant-numeric:tabular-nums}
.cth-au .play{width:52px!important;height:52px!important;flex:0 0 52px!important}
.cth-au .aud-skip{width:48px;height:48px;flex:0 0 48px;padding:0}
.cth-au .aud-skip svg{width:33px;height:33px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cth-au .aud-skip text{font:700 6.8px -apple-system,BlinkMacSystemFont,sans-serif;fill:currentColor;stroke:none}
.cth-au .aud-rate{min-width:48px;height:48px;padding:0;border:0;background:none;text-align:center}
.cth-au .aud-seek{width:100%;height:28px;margin:0;padding:0;touch-action:pan-y}
.cth-au .aud,.cth-au .aud *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}

/* tokens */
:root {
  --cth-brand: #176d68;
  --cth-brand-2: #318f87;
  --cth-canvas: #eef4f2;
  --cth-paper: #fbfdfc;
  --cth-ink: #152725;
  --cth-muted: #718681;
  --cth-line: #d9e5e2;
  --cth-warm: #f0ca72;
  --cth-muted-strong: #526c67;
  --cth-focus: #0f5f5b;
  --cth-brand-hover: #125d59;
  --cth-serif: var(--lr-cjk-body-font,"Source Han Sans SC","Noto Sans CJK SC","PingFang SC",sans-serif);
  --cth-sans: var(--lr-cjk-body-font,"Source Han Sans SC","Noto Sans CJK SC","PingFang SC",sans-serif);
  --cth-shell: 760px;
  --cth-radius: 16px;
  --cth-shadow: 0 12px 32px rgba(21, 39, 37, .08);
}

/* Sunday content hierarchy is typographic only; avoid decorative rules. */
.cth-sunday .sd-hero,
.cth-sunday .sd-hero > *,
.cth-sunday .sd-vs,
.cth-sunday .sd-vs > p {
  border: 0 !important;
  border-left-width: 0 !important;
  border-top-width: 0 !important;
  border-right-width: 0 !important;
  border-bottom-width: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}

.cth-sunday .sd-hero::before,
.cth-sunday .sd-hero::after,
.cth-sunday .sd-hero > *::before,
.cth-sunday .sd-hero > *::after,
.cth-sunday .sd-vs::before,
.cth-sunday .sd-vs::after,
.cth-sunday .sd-vs > p::before,
.cth-sunday .sd-vs > p::after {
  content: none !important;
  display: none !important;
}

/* base */
.cth-booklet {
  min-height: 100%;
  background: var(--cth-canvas);
  color: var(--cth-ink);
  font: 16px/1.65 var(--cth-sans);
}

.cth-booklet *,
.cth-booklet *::before,
.cth-booklet *::after {
  box-sizing: border-box;
}

.cth-booklet .ls-wrap {
  width: min(100% - 32px, var(--cth-shell));
  margin-inline: auto;
  padding-block: 22px 110px;
}

.cth-booklet a {
  color: var(--cth-brand);
  text-decoration-thickness: .08em;
  text-underline-offset: .2em;
}

.cth-booklet a,
.cth-booklet button,
.cth-booklet-read a,
.cth-booklet-read button {
  touch-action: manipulation;
}

.cth-booklet button,
.cth-booklet input,
.cth-booklet select,
.cth-booklet textarea {
  color: inherit;
  font: inherit;
}

.cth-booklet :where(a, button, input, select, textarea, summary):focus-visible,
.cth-booklet-read :where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--cth-focus);
  outline-offset: 3px;
}

.cth-booklet :where(.lt-back, .cth-icon-button, .booklet-primary),
.cth-booklet-read :where(.lt-back, .cth-icon-button, .booklet-primary) {
  min-width: 44px;
  min-height: 44px;
}

/* Keep the compact glyph/text treatment while making the whole control easy
   to hit. Both controls are injected by production scripts after first paint,
   so the shared booklet stylesheet owns their stable interaction geometry. */
.cth-booklet :where(.aud-rate, .dnt-x),
.cth-booklet-read :where(.aud-rate, .dnt-x) {
  min-width: 44px;
  min-height: 44px;
}

.cth-ic {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.cth-symbols {
  position: absolute;
  overflow: hidden;
  pointer-events: none;
}

/* header */
.cth-brand-header {
  position: sticky;
  z-index: 20;
  top: 0;
  border-bottom: 1px solid var(--cth-line);
  background: color-mix(in srgb, var(--cth-paper) 92%, transparent);
  backdrop-filter: blur(14px);
}

.cth-brand-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: min(100% - 32px, var(--cth-shell));
  min-height: 56px;
  margin-inline: auto;
}

.cth-brand-title {
  min-width: 0;
  margin: 0;
  color: var(--cth-ink);
  font: 600 18px/1.35 var(--cth-serif);
}

/* index catalog */
.cth-index {
  overflow-x: hidden;
  overflow-x: clip;
  margin: 0;
}

.cth-index .ls-wrap {
  padding-top: clamp(22px, 5vw, 38px);
}

.booklet-brand {
  width: 100%;
  border-bottom: 0;
  background: transparent;
}

.booklet-brand-inner {
  display: flex;
  align-items: center;
  gap: 13px;
  width: min(100% - 32px, var(--cth-shell));
  min-height: 72px;
  margin-inline: auto;
}

.booklet-brand-mark {
  display: inline-grid;
  flex: 0 0 auto;
  width: 52px;
  min-width: 52px;
  height: 52px;
  min-height: 52px;
  place-items: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--cth-brand);
  text-decoration: none;
}

.booklet-brand-mark img {
  display: block;
  width: 48px;
  height: 48px;
  object-fit: contain;
}

.booklet-brand-copy {
  min-width: 0;
}

.booklet-brand-copy h1,
.booklet-brand-copy p {
  margin: 0;
}

.booklet-catalog-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  width: min(100% - 32px, var(--cth-shell));
  margin-inline: auto;
}

.booklet-catalog-nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--cth-muted-strong);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}

.booklet-catalog-nav a.on {
  color: var(--cth-ink);
  font-size: 17px;
  font-weight: 750;
}

.booklet-catalog-nav a.on::after {
  position: absolute;
  right: 0;
  bottom: 2px;
  left: 0;
  width: 18px;
  height: 3px;
  margin: auto;
  border-radius: 999px;
  background: var(--cth-brand);
  content: "";
}

.booklet-brand-copy h1 {
  font: 650 21px/1.3 var(--cth-serif);
  letter-spacing: .04em;
}

.booklet-brand-copy p {
  margin-top: 2px;
  color: var(--cth-muted-strong);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}

.booklet-search {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding-inline: 15px;
  border: 1px solid var(--cth-line);
  border-radius: 999px;
  background: var(--cth-paper);
  box-shadow: 0 7px 22px rgba(21, 39, 37, .05);
  color: var(--cth-muted-strong);
}

.booklet-search input {
  min-width: 0;
  width: 100%;
  min-height: 44px;
  padding: 0;
  border: 0;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent;
  color: var(--cth-ink);
}

.booklet-search:focus-within {
  border-color: var(--cth-focus);
  box-shadow: 0 0 0 1px var(--cth-focus);
}

.booklet-search input::placeholder {
  color: var(--cth-muted-strong);
  opacity: 1;
}

.booklet-section {
  margin-top: clamp(30px, 7vw, 48px);
}

.booklet-section-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.booklet-section-heading h2 {
  margin: 0;
  font: 650 22px/1.35 var(--cth-serif);
  letter-spacing: .025em;
}

.booklet-section-heading > span {
  color: var(--cth-muted-strong);
  font-size: 12px;
}

.booklet-more-years {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: var(--cth-muted-strong);
  font-size: 12px;
  text-decoration: none;
}

.booklet-more-years:focus-visible {
  border-radius: 8px;
  outline: 2px solid var(--cth-focus);
  outline-offset: 2px;
}

.booklet-search-results {
  margin-top: 14px;
  border: 1px solid var(--cth-line);
  border-radius: var(--cth-radius);
  background: var(--cth-paper);
  overflow: hidden;
}

.booklet-search-status {
  margin: 0;
  padding: 14px 16px;
  color: var(--cth-muted-strong);
  font-size: 13px;
}

.booklet-search-result-list:not(:empty) {
  border-top: 1px solid var(--cth-line);
}

.booklet-search-result {
  display: flex;
  min-height: 56px;
  align-items: center;
  padding: 12px 16px;
  color: var(--cth-ink);
  line-height: 1.55;
  text-decoration: none;
}

.booklet-search-result + .booklet-search-result {
  border-top: 1px solid var(--cth-line);
}

.booklet-search-result:focus-visible {
  outline: 2px solid var(--cth-focus);
  outline-offset: -3px;
}

/* Morning dashboard: calm, compact status surfaces that keep their height
   while network data arrives, preventing the catalog below from jumping. */
.cth-dashboard {
  min-height: 246px;
  margin-top: 24px;
  padding: clamp(20px, 5vw, 30px);
  border: 1px solid var(--cth-line);
  border-radius: 22px;
  background:
    radial-gradient(circle at 92% 10%, color-mix(in srgb, var(--cth-warm) 24%, transparent), transparent 32%),
    var(--cth-paper);
  box-shadow: var(--cth-shadow);
}

.cth-dashboard-heading,
.cth-mine-summary,
.cth-community-row,
.cth-ranking-row,
.cth-morning-form-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.cth-dashboard-kicker {
  margin: 0 0 3px;
  color: var(--cth-brand);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .12em;
}

.cth-dashboard-title,
.cth-morning-form-heading h2 {
  margin: 0;
  font: 650 22px/1.35 var(--cth-serif);
}

.cth-dashboard-locality,
.cth-dashboard-progress,
.cth-today-state,
.cth-completion-time,
.cth-dashboard-muted,
.cth-dashboard-copy,
.cth-dashboard-fallback,
.cth-dashboard-loading,
.cth-community-heading p,
.cth-form-status {
  margin: 0;
}

.cth-mine-summary {
  align-items: flex-end;
  margin-top: 20px;
}

.cth-dashboard-locality {
  font: 650 18px/1.4 var(--cth-serif);
}

.cth-dashboard-progress {
  margin-top: 4px;
  color: var(--cth-muted-strong);
  font-variant-numeric: tabular-nums;
}

.cth-today-state {
  margin-top: 7px;
  color: var(--cth-muted-strong);
  font-size: 13px;
  font-weight: 650;
}

.cth-today-state.is-complete {
  color: var(--cth-brand);
}

.cth-dashboard-action {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  padding: 9px 17px;
  border: 1px solid var(--cth-brand);
  border-radius: 999px;
  background: var(--cth-brand);
  color: var(--cth-paper) !important;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}

.cth-dashboard-link {
  min-height: 40px;
  margin-top: 12px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--cth-brand);
  font-size: 13px;
  font-weight: 650;
  cursor: pointer;
}

.cth-dashboard-muted,
.cth-dashboard-copy,
.cth-dashboard-fallback,
.cth-dashboard-loading,
.cth-completion-time {
  color: var(--cth-muted-strong);
  font-size: 13px;
}

.cth-dashboard-muted {
  margin-top: 20px;
  color: var(--cth-ink);
  font-size: 16px;
  font-weight: 650;
}

.cth-dashboard-copy {
  max-width: 520px;
  margin: 6px 0 16px;
}

.cth-completion-time {
  margin-top: 4px;
}

.cth-week-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  margin-top: 18px;
}

.cth-week-day {
  display: grid;
  min-width: 0;
  min-height: 58px;
  place-content: center;
  border: 1px solid var(--cth-line);
  border-radius: 12px;
  background: color-mix(in srgb, var(--cth-canvas) 55%, var(--cth-paper));
  color: var(--cth-muted-strong);
  text-align: center;
}

.cth-week-day.is-current {
  border-color: var(--cth-brand);
}

.cth-week-day.is-complete {
  background: color-mix(in srgb, var(--cth-brand) 11%, var(--cth-paper));
  color: var(--cth-brand);
}

.cth-week-label {
  font-size: 12px;
  font-weight: 700;
}

.cth-week-state {
  margin-top: 2px;
  font-size: 10px;
}

.cth-community {
  min-height: 210px;
}

.cth-community-heading {
  align-items: end;
}

.cth-community-heading > p {
  max-width: 260px;
  color: var(--cth-muted-strong);
  font-size: 12px;
  text-align: right;
}

.cth-community-list,
.cth-ranking-list {
  min-height: 150px;
  overflow: hidden;
  border: 1px solid var(--cth-line);
  border-radius: var(--cth-radius);
  background: var(--cth-paper);
  box-shadow: 0 5px 18px rgba(21, 39, 37, .045);
}

.cth-community-row,
.cth-ranking-row {
  min-height: 68px;
  padding: 12px 16px;
}

.cth-community-row + .cth-community-row,
.cth-ranking-row + .cth-ranking-row {
  border-top: 1px solid var(--cth-line);
}

.cth-community-name {
  min-width: 0;
  flex: 1 1 auto;
  font: 650 15px/1.45 var(--cth-serif);
}

.cth-community-position,
.cth-community-count,
.cth-ranking-number {
  color: var(--cth-muted-strong);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

.cth-community-count {
  white-space: nowrap;
}

.cth-ranking-number {
  flex: 0 0 28px;
  color: var(--cth-brand);
  font-weight: 750;
}

.cth-morning-dialog {
  width: min(100% - 32px, 760px);
  max-height: min(760px, calc(100dvh - 40px));
  padding: 0;
  border: 1px solid var(--cth-line);
  border-radius: 22px;
  background: var(--cth-paper);
  box-shadow: 0 32px 90px rgba(21, 39, 37, .26);
  color: var(--cth-ink);
  overflow: hidden;
}

.cth-morning-dialog::backdrop {
  background: rgba(10, 28, 26, .42);
  backdrop-filter: blur(3px);
}

.cth-morning-form {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  max-height: min(760px, calc(100dvh - 40px));
  padding: 0;
}

.cth-morning-form-heading {
  padding: 24px 26px 18px;
  border-bottom: 1px solid var(--cth-line);
  background: var(--cth-paper);
}

.cth-morning-form-body {
  min-height: 0;
  overflow-y: auto;
  padding: 22px 26px 26px;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.cth-morning-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px;
}

.cth-morning-section {
  min-width: 0;
}

.cth-morning-section-title {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 15px;
  color: var(--cth-muted-strong);
  font: 700 13px/1.4 var(--cth-sans);
  letter-spacing: .06em;
}

.cth-morning-section-title::before {
  width: 24px;
  height: 3px;
  border-radius: 999px;
  background: var(--cth-brand);
  content: "";
}

.cth-morning-form-actions {
  padding: 15px 26px 18px;
  border-top: 1px solid var(--cth-line);
  background: color-mix(in srgb, var(--cth-paper) 94%, var(--cth-canvas));
}

.cth-dialog-close {
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 999px;
  background: var(--cth-canvas);
  color: var(--cth-muted-strong);
  font-size: 25px;
  cursor: pointer;
}

.cth-form-field {
  display: grid;
  gap: 6px;
  margin-top: 18px;
  color: var(--cth-muted-strong);
  font-size: 13px;
  font-weight: 650;
}

.cth-morning-section > .cth-form-field:first-of-type {
  margin-top: 0;
}

.cth-form-field :where(input, select) {
  width: 100%;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid var(--cth-line);
  border-radius: 12px;
  background: white;
}

.cth-locality-results {
  overflow: hidden;
  margin-top: 6px;
  border: 1px solid var(--cth-line);
  border-radius: 12px;
}

.cth-locality-option {
  display: block;
  width: 100%;
  min-height: 44px;
  padding: 9px 12px;
  border: 0;
  background: white;
  text-align: left;
  cursor: pointer;
}

.cth-locality-option + .cth-locality-option {
  border-top: 1px solid var(--cth-line);
}

.cth-form-status {
  min-height: 22px;
  margin: 0 2px 8px;
  color: var(--cth-muted-strong);
  font-size: 12px;
}

.cth-form-submit {
  width: 100%;
  min-height: 50px;
}

.booklet-recent {
  display: grid;
  grid-auto-columns: clamp(196px, 72vw, 238px);
  grid-auto-flow: column;
  gap: 14px;
  max-width: 100%;
  overflow-x: auto;
  padding: 2px 2px 14px;
  scroll-padding-inline: 2px;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
}

.booklet-recent-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  color: var(--cth-ink);
  scroll-snap-align: start;
  text-decoration: none;
}

.cth-index .booklet-recent-card:focus-visible {
  outline: 3px solid var(--cth-focus);
  outline-offset: -3px;
}

.cth-index .booklet-recent-card > span:first-child {
  width: 100%;
  padding: 20px 18px 17px 30px;
  transition: box-shadow .18s ease, transform .18s ease;
}

.booklet-cover-year {
  color: color-mix(in srgb, var(--cth-paper) 81%, transparent);
  font: 500 14px/1.3 var(--cth-sans);
  font-variant-numeric: tabular-nums;
  letter-spacing: .16em;
}

.booklet-cover-name {
  align-self: center;
  font: 650 clamp(23px, 7vw, 31px)/1.35 var(--cth-serif);
  letter-spacing: .08em;
  text-align: center;
}

.booklet-cover-series {
  justify-self: end;
  color: color-mix(in srgb, var(--cth-paper) 82%, transparent);
  font: 500 12px/1.3 var(--cth-sans);
  letter-spacing: .18em;
}

.booklet-recent-title {
  margin-top: 12px;
  color: var(--cth-ink);
  font: 600 16px/1.55 var(--cth-serif);
}

.booklet-recent-meta {
  margin-top: 3px;
  color: var(--cth-muted-strong);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}

.ixy {
  overflow: hidden;
  margin-bottom: 12px;
  border: 1px solid var(--cth-line);
  border-radius: var(--cth-radius);
  background: var(--cth-paper);
  box-shadow: 0 5px 18px rgba(21, 39, 37, .045);
}

.ixy-hd {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 56px;
  padding: 12px 16px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.cth-index .ixy-hd:focus-visible {
  outline: 3px solid var(--cth-focus);
  outline-offset: -3px;
}

.ixy.on .ixy-hd {
  border-bottom: 1px solid var(--cth-line);
}

.ixy-y {
  flex: 0 0 auto;
  font: 650 19px/1.3 var(--cth-serif);
  font-variant-numeric: tabular-nums;
  letter-spacing: .045em;
}

.ixy-n {
  flex: 1 1 auto;
  color: var(--cth-muted-strong);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}

.ixy-ar {
  color: var(--cth-muted-strong);
  transition: transform .18s ease;
}

.ixy.on .ixy-ar {
  transform: rotate(180deg);
}

.ixy-bd {
  overflow: hidden;
}

.ixy-bd .lrow {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 68px;
  padding: 12px 16px;
  color: var(--cth-ink);
  text-decoration: none;
}

.ixy-bd .lrow + .lrow {
  border-top: 1px solid var(--cth-line);
}

.ixy-bd .lmid {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 2px;
}

.ixr-top {
  display: flex;
  align-items: center;
}

.ixr-type,
.lrow-s {
  color: var(--cth-muted-strong);
  font-size: 12px;
}

.lrow-t {
  font: 600 15px/1.5 var(--cth-serif);
}

.ixr-go {
  width: 18px;
  height: 18px;
  color: var(--cth-muted-strong);
}

.cth-index .ix-empty {
  margin: 12px 0 0;
}

@media (hover: hover) {
  .booklet-recent-card:hover > span:first-child {
    box-shadow: 0 16px 34px rgba(21, 39, 37, .14);
    transform: translateY(-2px);
  }

  .ixy-hd:hover,
  .ixy-bd .lrow:hover {
    background: color-mix(in srgb, var(--cth-brand) 6%, var(--cth-paper));
  }
}

.cth-icon-button,
.lt-back {
  display: inline-grid;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--cth-brand);
}

/* cover */
.booklet-cover {
  position: relative;
  display: grid;
  aspect-ratio: 3 / 4;
  align-content: space-between;
  overflow: hidden;
  padding: 18px;
  border: 1px solid var(--cth-line);
  border-radius: calc(var(--cth-radius) - 2px);
  background: linear-gradient(90deg, var(--cth-cover-spine, var(--cth-brand-2)) 0 12px, var(--cth-cover-main, var(--cth-brand)) 12px);
  box-shadow: var(--cth-shadow);
  color: var(--cth-paper);
}

/* 七次特会固定书色：同类特会跨年份保持一致。 */
.cth-conf[data-conf$="-1"], .cth-week[data-conf$="-1"] { --cth-cover-main: #245a73; --cth-cover-spine: #4b8998; }
.cth-conf[data-conf$="-2"], .cth-week[data-conf$="-2"] { --cth-cover-main: #496b55; --cth-cover-spine: #7f9b77; }
.cth-conf[data-conf$="-3"], .cth-week[data-conf$="-3"] { --cth-cover-main: #18766d; --cth-cover-spine: #49a094; }
.cth-conf[data-conf$="-4"], .cth-week[data-conf$="-4"] { --cth-cover-main: #3d5f86; --cth-cover-spine: #7189a6; }
.cth-conf[data-conf$="-5"], .cth-week[data-conf$="-5"] { --cth-cover-main: #8e593f; --cth-cover-spine: #ba7b5b; }
.cth-conf[data-conf$="-6"], .cth-week[data-conf$="-6"] { --cth-cover-main: #946923; --cth-cover-spine: #c49a4c; }
.cth-conf[data-conf$="-7"], .cth-week[data-conf$="-7"] { --cth-cover-main: #485866; --cth-cover-spine: #7d8b96; }

.booklet-cover::before {
  position: absolute;
  inset-block: 0;
  left: 12px;
  width: 1px;
  background: color-mix(in srgb, var(--cth-paper) 38%, transparent);
  content: "";
}

.booklet-cover-title {
  margin: 0;
  font: 600 clamp(20px, 5vw, 30px)/1.35 var(--cth-serif);
}

.booklet-cover-meta {
  color: var(--cth-paper);
  font-size: 13px;
  letter-spacing: .08em;
}

/* catalog */
.booklet-group {
  overflow: hidden;
  border: 1px solid var(--cth-line);
  border-radius: var(--cth-radius);
  background: var(--cth-paper);
  box-shadow: var(--cth-shadow);
}

.booklet-group + .booklet-group {
  margin-top: 18px;
}

.booklet-group-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin: 0;
  padding: 18px 20px 12px;
  font: 600 20px/1.4 var(--cth-serif);
}

.booklet-meta {
  color: var(--cth-muted-strong);
  font: 500 12px/1.5 var(--cth-sans);
}

.booklet-row {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 56px;
  padding: 12px 20px;
  border-top: 1px solid var(--cth-line);
  color: var(--cth-ink);
  text-decoration: none;
}

/* conference */
.booklet-hero {
  display: grid;
  grid-template-columns: minmax(112px, 172px) minmax(0, 1fr);
  gap: clamp(20px, 5vw, 40px);
  align-items: center;
  margin-bottom: 28px;
}

.booklet-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 18px;
  border: 1px solid var(--cth-brand);
  border-radius: 999px;
  background: var(--cth-brand);
  color: var(--cth-paper);
  font-weight: 650;
  text-decoration: none;
}

.cth-booklet a.booklet-primary {
  color: var(--cth-paper);
}

.booklet-primary:hover {
  background: var(--cth-brand-hover);
  border-color: var(--cth-brand-hover);
}

/* conference booklet */
.cth-conf {
  overflow-x: hidden;
  overflow-x: clip;
  margin: 0;
  background: var(--cth-canvas);
  color: var(--cth-ink);
  color-scheme: light;
}

.cth-conf .ls-wrap {
  padding-top: clamp(26px, 6vw, 46px);
}

.cth-conf .cf-hero {
  grid-template-columns: minmax(150px, 190px) minmax(0, 1fr);
  gap: clamp(24px, 6vw, 48px);
  align-items: start;
  margin-bottom: clamp(32px, 7vw, 52px);
}

/* 主操作按钮保持纯平面，不使用发光、光晕或投影。 */
:is(.booklet-primary, .booklet-primary-action, .cth-dashboard-action, .cth-community-more-link) {
  box-shadow: none !important;
  filter: none !important;
  text-shadow: none !important;
}

:is(.booklet-primary, .booklet-primary-action, .cth-dashboard-action, .cth-community-more-link):is(:hover, :active, :focus-visible) {
  box-shadow: none !important;
  filter: none !important;
  text-shadow: none !important;
}

.booklet-cover-lg {
  width: 100%;
  min-height: 224px;
  padding: 22px 20px 20px 32px;
  border-color: color-mix(in srgb, var(--cth-brand) 72%, var(--cth-line));
  border-radius: 5px 13px 13px 5px;
  box-shadow: 0 18px 38px rgba(21, 39, 37, .16);
}

.cth-conf .booklet-cover-lg {
  border: 0;
}

.booklet-cover-lg .booklet-cover-name {
  font-size: clamp(24px, 5vw, 32px);
  line-height: 1.4;
}

.cf-hero-copy {
  min-width: 0;
}

.cf-kicker,
.cf-summary {
  margin: 0;
  color: var(--cth-muted-strong);
}

.cf-kicker {
  font-size: 12px;
  font-weight: 650;
}

.cf-hero-copy h2 {
  margin: 8px 0 10px;
  font: 650 clamp(24px, 4.5vw, 34px)/1.45 var(--cth-serif);
  letter-spacing: .025em;
  text-wrap: balance;
}

.cf-summary {
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}

.cth-conf #cfContinue {
  width: max-content;
  max-width: 100%;
  min-height: 44px;
  margin-top: 16px;
  padding: 8px 16px;
  font-size: 15px;
  line-height: 1.2;
}

.cf-action-arrow {
  width: 17px;
  height: 17px;
}

.cf-list .booklet-group-heading h2 {
  margin: 0;
  font: inherit;
}

.cth-conf .cf-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  min-height: 94px;
  padding: 15px 20px 16px;
  border-top: 1px solid var(--cth-line);
  color: var(--cth-ink);
  text-decoration: none;
  transition: background-color .18s ease;
}

.cth-conf .cf-item:focus-visible {
  outline-offset: -3px;
}

.cf-item-copy {
  display: grid;
  min-width: 0;
  gap: 5px;
}

.cf-item-meta,
.cf-progress-state {
  display: flex;
  align-items: center;
  gap: 8px;
}

.cf-item-meta {
  justify-content: space-between;
}

.cf-no,
.cf-pg,
.cf-done-mark {
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  font-variant-numeric: tabular-nums;
}

.cf-no {
  color: var(--cth-brand);
}

.cf-pg {
  color: var(--cth-muted-strong);
  white-space: nowrap;
}

.cf-pg.ing {
  color: #76580e;
}

.cf-pg.done {
  color: var(--cth-brand);
}

.cf-pg.unavailable {
  color: var(--cth-muted-strong);
  font-weight: 500;
}

.cf-done-mark {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding-inline: 7px;
  border: 1px solid color-mix(in srgb, var(--cth-brand) 48%, var(--cth-line));
  border-radius: 999px;
  color: var(--cth-brand);
}

.cf-done-mark[hidden] {
  display: none;
}

.cf-ti {
  overflow-wrap: anywhere;
  font: 600 16px/1.55 var(--cth-serif);
}

.cf-item.done .cf-ti {
  color: var(--cth-muted-strong);
}

.cf-progress {
  width: 100%;
  height: 4px;
  overflow: hidden;
  border: 0;
  border-radius: 999px;
  appearance: none;
  background: var(--cth-line);
  color: var(--cth-brand);
  accent-color: var(--cth-brand);
}

.cf-progress::-webkit-progress-bar {
  border-radius: 999px;
  background: var(--cth-line);
}

.cf-progress::-webkit-progress-value {
  border-radius: 999px;
  background: var(--cth-brand);
  transition: width .2s ease;
}

.cf-progress::-moz-progress-bar {
  border-radius: 999px;
  background: var(--cth-brand);
}

.cf-chevron {
  color: var(--cth-muted-strong);
  transition: transform .18s ease;
}

.cf-empty {
  margin: 0;
  padding: 34px 20px;
  border-top: 1px solid var(--cth-line);
  color: var(--cth-muted-strong);
  text-align: center;
}

@media (hover: hover) {
  .cth-conf .cf-item:hover {
    background: color-mix(in srgb, var(--cth-brand) 6%, var(--cth-paper));
  }

  .cth-conf .cf-item:hover .cf-chevron {
    transform: translateX(2px);
  }
}

@media (max-width: 560px) {
  .cth-conf .cf-hero {
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 17px;
    align-items: center;
  }

  .booklet-cover-lg {
    min-height: 149px;
    padding: 15px 12px 14px 24px;
  }

  .booklet-cover-lg .booklet-cover-year,
  .booklet-cover-lg .booklet-cover-series {
    font-size: 10px;
  }

  .booklet-cover-lg .booklet-cover-name {
    font-size: 20px;
  }

  .cf-hero-copy h2 {
    margin-top: 5px;
    font-size: clamp(20px, 6vw, 24px);
  }

  .cth-conf .cf-item {
    padding-inline: 16px;
  }
}

/* message week center */
.cth-week {
  overflow-x: hidden;
  overflow-x: clip;
  margin: 0;
  background: var(--cth-canvas);
  color: var(--cth-ink);
  color-scheme: light;
}

.cth-week .ls-wrap {
  padding-top: clamp(24px, 6vw, 42px);
}

.cth-week .week-brand-copy {
  min-width: 0;
}

.cth-week .week-brand-copy .cth-brand-title,
.cth-week .week-brand-copy p {
  overflow: hidden;
  margin: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cth-week .week-brand-copy p {
  margin-top: 1px;
  color: var(--cth-muted-strong);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

.cth-week .booklet-week-hero {
  display: grid;
  grid-template-columns: minmax(104px, 124px) minmax(0, 1fr);
  gap: clamp(18px, 5vw, 34px);
  align-items: center;
  margin-bottom: clamp(26px, 6vw, 38px);
}

.cth-week .booklet-cover-week {
  width: 100%;
  min-height: 154px;
  padding: 15px 13px 14px 25px;
  border-color: color-mix(in srgb, var(--cth-brand) 70%, var(--cth-line));
  border-radius: 4px 11px 11px 4px;
  box-shadow: 0 14px 28px rgba(21, 39, 37, .14);
}

.cth-week .booklet-cover-week .booklet-cover-year,
.cth-week .booklet-cover-week .booklet-cover-series {
  font-size: 10px;
}

.cth-week .booklet-cover-week .booklet-cover-name {
  font-size: clamp(17px, 4.7vw, 20px);
  letter-spacing: .06em;
}

.cth-week .week-hero-copy {
  min-width: 0;
}

.cth-week .week-kicker,
.cth-week .week-meta {
  margin: 0;
  color: var(--cth-muted-strong);
}

.cth-week .week-kicker {
  font-size: 12px;
  font-weight: 650;
  letter-spacing: .08em;
}

.cth-week .week-hero-copy h2 {
  margin: 7px 0 9px;
  overflow-wrap: anywhere;
  font: 650 clamp(21px, 5.4vw, 30px)/1.5 var(--cth-serif);
  letter-spacing: .025em;
  text-wrap: balance;
}

.cth-week .week-meta {
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

.cth-week .wk-today.booklet-primary-action {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  min-height: 76px;
  margin: 0 0 28px;
  padding: 14px 18px;
  border: 1px solid var(--cth-brand);
  border-radius: 14px;
  background: var(--cth-brand) !important;
  box-shadow: none !important;
  color: var(--cth-paper);
  text-decoration: none;
}

.cth-week .wk-today.booklet-primary-action:focus-visible {
  outline: 3px solid var(--cth-paper);
  outline-offset: -6px;
  box-shadow: 0 0 0 3px var(--cth-focus) !important;
}

.cth-week .wk-tl {
  min-width: 0;
  flex: 1 1 auto;
}

.cth-week .wk-eyebrow,
.cth-week .wk-tt {
  display: block;
}

.cth-week .wk-eyebrow {
  margin-bottom: 3px;
  color: var(--cth-paper);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .08em;
  opacity: .88;
}

.cth-week .wk-tt {
  overflow-wrap: anywhere;
  font: 650 17px/1.5 var(--cth-serif);
}

.cth-week .wk-go {
  width: 20px;
  height: 20px;
}

.cth-week .wk-today-empty,
.cth-week .wk-empty {
  display: flex;
  min-height: 76px;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  margin: 0 0 28px;
  padding: 13px 17px;
  border: 1px solid var(--cth-line);
  border-radius: 14px;
  background: var(--cth-paper);
  color: var(--cth-muted-strong);
  font-size: 13px;
}

.cth-week .wk-today-empty strong {
  color: var(--cth-ink);
  font-size: 15px;
}

.cth-week .mg-sec {
  margin: 0 0 26px;
}

.cth-week .mg-lb {
  margin: 0 0 10px;
  color: var(--cth-ink) !important;
  font: 650 18px/1.4 var(--cth-serif) !important;
}

.cth-week .tl.booklet-group {
  margin: 0;
  padding: 0;
  list-style: none;
}

.cth-week .tl-i {
  position: relative;
  margin: 0;
  padding: 0;
}

.cth-week .tl-i + .tl-i {
  border-top: 1px solid var(--cth-line);
}

.cth-week .tl-b {
  position: relative;
  display: flex;
  align-items: center;
  gap: 13px;
  width: 100%;
  min-height: 64px;
  margin: 0;
  padding: 11px 16px;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--cth-ink);
  text-decoration: none;
  transform: none;
}

.cth-week .tl-b::before {
  content: none;
}

.cth-week .tl-b:focus-visible,
.cth-week .wk-mh:focus-visible,
.cth-week .tl-otx .rs-hd:focus-visible {
  outline: 3px solid var(--cth-focus);
  outline-offset: -3px;
}

.cth-week .tl-n {
  display: inline-grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: color-mix(in srgb, var(--cth-brand) 10%, var(--cth-paper));
  color: var(--cth-brand);
  font-size: 14px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.cth-week .tl-mid {
  min-width: 0;
  flex: 1 1 auto;
}

.cth-week .tl-hd {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
}

.cth-week .tl-wd {
  flex: 0 0 auto;
  margin: 0;
  color: var(--cth-ink) !important;
  font: 650 17px/1.2 var(--cth-sans) !important;
}

.cth-week .tl-tp {
  display: block;
  margin-top: 2px;
  overflow-wrap: anywhere;
  color: var(--cth-muted-strong) !important;
  font: 500 14px/1.5 var(--cth-serif) !important;
}

.cth-week .tl-state {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: auto;
}

.cth-week .tl-st {
  flex: 0 0 auto;
  color: var(--cth-muted-strong) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.4;
}

.cth-week .tl-done-mark,
.cth-week .tl-done-text {
  display: none;
}

.cth-week .tl-done-mark {
  width: 15px;
  height: 15px;
}

.cth-week .tl-done-text {
  font-size: 12px;
  font-weight: 650;
}

.cth-week .tl-i.done .tl-done-mark {
  display: block;
  color: var(--cth-brand);
}

.cth-week .tl-i.done .tl-done-text {
  display: inline;
  color: var(--cth-brand);
}

.cth-week .tl-i.done .tl-st {
  display: none;
}

.cth-week .tl-i.today {
  background: color-mix(in srgb, var(--cth-warm) 22%, var(--cth-paper));
}

.cth-week .tl-i.today .tl-n {
  background: var(--cth-brand);
  color: var(--cth-paper);
}

.cth-week .tl-i.today .tl-st {
  padding: 2px 7px;
  border-radius: 999px;
  background: var(--cth-warm);
  color: var(--cth-ink) !important;
}

.cth-week .tl-i.off .tl-b {
  cursor: default;
}

.cth-week .tl-i.off .tl-n {
  border: 1px dashed var(--cth-muted-strong);
  background: transparent;
  color: var(--cth-muted-strong);
}

.cth-week .tl-i.off .tl-st {
  color: var(--cth-muted-strong) !important;
}

.cth-week .tl-unavailable {
  padding: 2px 7px;
  border: 1px solid var(--cth-line);
  border-radius: 999px;
  color: var(--cth-muted-strong);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
}

.cth-week .tl-i.off.today .tl-unavailable {
  border-color: color-mix(in srgb, var(--cth-warm) 58%, var(--cth-line));
  background: var(--cth-paper);
  color: var(--cth-ink);
}

.cth-week .tl-i.off.today .tl-n {
  border-color: var(--cth-brand);
  background: var(--cth-brand);
  color: var(--cth-paper);
  opacity: 1;
}

.cth-week .tl-i.off.today .tl-st {
  color: var(--cth-ink) !important;
  opacity: 1;
}

.cth-week .tl-i.sun {
  background: color-mix(in srgb, var(--cth-warm) 10%, var(--cth-paper));
}

.cth-week .tl-i.sun .tl-n {
  background: color-mix(in srgb, var(--cth-warm) 28%, var(--cth-paper));
  color: var(--cth-ink);
}

.cth-week .tl-bcol {
  display: block;
  padding-block: 15px;
}

.cth-week .tl-open .tl-hd {
  justify-content: flex-start;
  margin-bottom: 9px;
}

.cth-week .tl-note {
  margin-left: auto;
  color: var(--cth-muted-strong) !important;
  font-size: 12px !important;
}

.cth-week .tl-otx {
  overflow: visible;
  margin: 10px 0 0;
  border-top: 1px solid var(--cth-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.cth-week .tl-otx .rs-hd {
  min-height: 44px;
  padding: 10px 0;
}

.cth-week .tl-otx .rs-hd::after {
  content: none;
}

.cth-week .tl-otx .rs-chevron {
  color: var(--cth-muted-strong);
  transition: transform .18s ease;
}

.cth-week .tl-otx[open] .rs-chevron {
  transform: rotate(180deg);
}

.cth-week .tl-otx .rs-bd {
  padding-inline: 0;
}

.cth-week .wk-more.booklet-disclosure {
  overflow: visible;
  margin: 28px 0 8px;
  border-block: 1px solid var(--cth-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none !important;
}

.cth-week .wk-mh {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 52px;
  padding: 12px 2px;
  border: 0;
  background: transparent;
  color: var(--cth-ink);
  text-align: left;
  cursor: pointer;
}

.cth-week .wk-mt {
  min-width: 0;
  flex: 1 1 auto;
  color: var(--cth-ink) !important;
  font: 650 16px/1.4 var(--cth-serif);
}

.cth-week .wk-mn,
.cth-week .wk-ma {
  color: var(--cth-muted-strong) !important;
}

.cth-week .wk-mn {
  font-size: 12px;
}

.cth-week .wk-ma {
  transition: transform .18s ease;
}

.cth-week .wk-more.on .wk-ma {
  transform: rotate(180deg);
}

.cth-week .wk-mb {
  padding: 0 2px 8px;
  border-top: 1px solid var(--cth-line);
}

.cth-week .wk-blk {
  padding: 18px 0;
}

.cth-week .wk-blk + .wk-blk {
  border-top: 1px solid var(--cth-line);
}

.cth-week :where(.ol-flat, .fd-flat, .lst-flat) {
  margin: 0;
  padding-inline: 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.cth-week :where(.lst-flat .lrow, .wk-hy) {
  min-height: 52px;
  padding-inline: 0;
  background: transparent;
}

.cth-week .mg-nav {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 28px;
}

.cth-week .mg-pn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-width: 44px;
  min-height: 44px;
  padding: 8px 4px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--cth-brand);
  text-decoration: none;
}

.cth-week .mg-pn:focus-visible {
  outline-offset: -3px;
}

@media (hover: hover) {
  .cth-week .wk-today.booklet-primary-action:hover {
    border-color: var(--cth-brand-hover);
    background: var(--cth-brand-hover) !important;
  }

  .cth-week .tl-b[href]:hover {
    background: color-mix(in srgb, var(--cth-brand) 6%, var(--cth-paper)) !important;
  }

  .cth-week .mg-pn:hover {
    color: var(--cth-brand-hover);
  }
}

@media (max-width: 420px) {
  .cth-week .booklet-week-hero {
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 16px;
  }

  .cth-week .booklet-cover-week {
    min-height: 139px;
    padding: 13px 10px 12px 22px;
  }

  .cth-week .week-hero-copy h2 {
    font-size: clamp(19px, 5.6vw, 23px);
  }

  .cth-week .tl-b {
    padding-inline: 13px;
  }

  .cth-week .tl-note {
    max-width: 48%;
    text-align: right;
  }
}

/* week */
.booklet-week-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.booklet-week-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 56px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--cth-line);
}

.booklet-week-row:last-child {
  border-bottom: 0;
}

.booklet-week-label {
  min-width: 40px;
  color: var(--cth-muted-strong);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

/* reader */
.cth-booklet-read {
  --cth-reader-brand: #176d68;
  --cth-focus: #176d68;
  min-height: 100vh;
  overflow-x: hidden;
  overflow-x: clip;
  background: var(--paper, var(--cth-paper));
  color: var(--ink, var(--cth-ink));
}

html[data-sv-theme="night"] .cth-booklet-read {
  --cth-reader-brand: #72c9c2;
  --cth-focus: #72c9c2;
}

body.cth-read.cth-booklet-read .bar:not(.sv-navbar),
.cth-booklet-read .bar.sv-navbar {
  width: 100%;
  height: 56px;
  min-height: 56px;
  padding: 7px 10px;
  border-bottom: 1px solid var(--line, var(--cth-line));
  background: var(--paper, var(--cth-paper));
  box-shadow: none;
  color: var(--cth-reader-brand);
  box-sizing: border-box;
}

.cth-booklet-read .bar.sv-navbar {
  background: var(--paper, var(--cth-paper));
}

.cth-booklet-read .bar :where(.topback, #svTitle, .iconbtn),
.cth-booklet-read .bar.sv-navbar :where(.topback, #svTitle, .iconbtn) {
  color: var(--cth-reader-brand) !important;
}

.cth-booklet-read .bar #svTitle {
  position: absolute !important;
  inset-inline: 104px !important;
  width: auto !important;
  max-width: none !important;
  min-height: 44px;
  margin: 0 !important;
  transform: none !important;
}

.cth-booklet-read .cth-hd2 {
  position: absolute;
  inset-inline: 104px;
  width: auto;
  max-width: none;
  transform: none;
  color: var(--cth-reader-brand);
}

.cth-booklet-read .bar .bar-nav,
.cth-booklet-read .bar.sv-navbar .bar-nav {
  position: relative;
  z-index: 2;
  margin-left: auto;
}

.cth-booklet-read .cth-hd2 b {
  font-size: 12.5px;
  font-weight: 700;
  opacity: 1;
}

.cth-booklet-read .cth-hd2 i {
  font-size: 14.5px;
  font-weight: 700;
}

.cth-booklet-read .cth-hd2 .hd2-ar {
  width: 15px;
  height: 15px;
}

.cth-booklet-read #svTitle.two .sub {
  opacity: 1;
}

.cth-booklet-read .bar :where(.topback, .iconbtn),
.cth-booklet-read .bar.sv-navbar :where(.topback, .iconbtn) {
  width: 44px !important;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
}

.cth-booklet-read .bar :where(.topback, #svTitle, .iconbtn):active {
  background: color-mix(in srgb, var(--cth-reader-brand) 10%, transparent) !important;
}

.cth-booklet-read .cth-ic {
  width: 20px;
  height: 20px;
}

.cth-booklet-read .cth-nav-loading {
  width: 52px;
  min-width: 52px;
  height: 44px;
  min-height: 44px;
}

.cth-booklet-read .cth-load-dots {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.cth-booklet-read .cth-load-dots > span {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
  opacity: .58;
}

.cth-booklet-read .cth-tb {
  top: 56px;
  height: 55px;
  min-height: 55px;
  padding: 0 3px;
  border-bottom: 1px solid var(--line, var(--cth-line));
  background: var(--paper, var(--cth-paper));
  box-sizing: border-box;
}

.cth-booklet-read .cth-tb-b {
  min-width: 44px;
  min-height: 44px;
  color: var(--ink, var(--cth-ink));
}

.cth-booklet-read .cth-tb-b .lbl {
  color: var(--ink, var(--cth-ink));
  opacity: .72;
}

.cth-booklet-read :is(#cthTabsPh, #svTabs) {
  width: min(calc(100% - 40px), 680px);
  max-width: 680px;
  height: 48px;
  min-height: 48px;
  margin: 12px auto 0;
  border: 1px solid var(--line, var(--cth-line));
  border-radius: 10px;
  background: var(--paper, var(--cth-paper));
  box-sizing: border-box;
}

.cth-booklet-read :is(#cthTabsPh, #svTabs) :is(button, .cth-tab-ph) {
  flex: 1;
  min-height: 46px;
  padding: 0 6px;
  color: var(--ink, var(--cth-ink));
  font-family: inherit;
  font-size: 15.5px;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  box-sizing: border-box;
}

.cth-booklet-read #cthTabsPh .cth-tab-ph {
  display: flex;
  align-items: center;
  justify-content: center;
}

.cth-booklet-read :is(#cthTabsPh, #svTabs) :is(button, .cth-tab-ph).on {
  background: var(--cth-reader-brand);
  color: #fff;
}

html[data-sv-theme="night"] .cth-booklet-read :is(#cthTabsPh, #svTabs) :is(button, .cth-tab-ph).on {
  color: #152725;
}

@media (max-width: 420px) {
  .cth-booklet-read :is(#cthTabsPh, #svTabs) :is(button, .cth-tab-ph) {
    padding-right: 4px;
    padding-left: 4px;
    font-size: 14.5px;
  }
}

.cth-booklet-read :where(.wrap, .cth-au) {
  width: 100%;
  max-width: 720px;
  padding-right: 20px;
  padding-left: 20px;
  box-sizing: border-box;
}

.cth-booklet-read :where(.cth-mh, .svmsg-hd) {
  position: relative;
  margin-top: 0;
  margin-bottom: 22px;
  padding-top: 20px;
  padding-bottom: 16px;
  border-bottom: 0;
  font-family: var(--cth-serif);
  text-align: left;
}

.cth-booklet-read :where(.cth-mh, .svmsg-hd)::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 34px;
  height: 1px;
  background: var(--cth-reader-brand);
  content: "";
}

.cth-booklet-read :where(.cth-mh-no, .svmsg-hd .mh-no) {
  margin-bottom: 7px !important;
  color: var(--cth-reader-brand) !important;
  font: 750 15px/1.5 var(--cth-sans) !important;
  letter-spacing: .04em;
}

.cth-booklet-read :where(.cth-mh-t, .svmsg-hd .mh-cn) {
  margin: 0;
  color: var(--ink, var(--cth-ink)) !important;
  font: 500 clamp(24px, 6vw, 29px)/1.45 var(--cth-serif) !important;
  text-align: left;
}

body.cth-booklet-read.cth-read:not(.cth-mr) .svmsg-hd .mh-no,
body.cth-booklet-read.cth-read.cth-mr .cth-mh-no {
  color: var(--cth-reader-brand) !important;
  font: 750 15px/1.5 var(--cth-sans) !important;
}

.cth-booklet-read .chapnav :where(#prev2, #next2) {
  min-height: 44px;
  padding: 8px 4px;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 15px !important;
}

body.cth-booklet-read.cth-read:not(.cth-mr) .svmsg-hd .mh-cn {
  color: var(--ink, var(--cth-ink)) !important;
  font: 500 clamp(24px, 6vw, 29px)/1.45 var(--cth-serif) !important;
}
body.cth-booklet-read.cth-read.cth-mr .cth-mh-t {
  color: var(--ink, var(--cth-ink)) !important;
  font: 700 clamp(18px, calc(6vw - 6px), 23px)/1.45 var(--cth-serif) !important;
}

body.cth-content-read #app .svmsg-hd {
  display: none !important;
}

body.cth-content-read .cth-content-title .cth-mh-t {
  font-weight: 700 !important;
}

.cth-booklet-read #app {
  width: min(100% - 32px, var(--cth-shell, 760px));
  max-width: var(--cth-shell, 760px);
  margin-inline: auto;
  font-size: var(--fs, 17px);
}

.cth-booklet-read :where(.wrap, .cth-au) {
  width: min(100% - 32px, var(--cth-shell, 760px));
  max-width: var(--cth-shell, 760px);
  margin-inline: auto;
  padding-right: 0;
  padding-left: 0;
  box-sizing: border-box;
}

.cth-booklet-read:not(.cth-mr) #app .h.h0 {
  display: none !important;
}

.cth-booklet-read #app {
  min-height: min(70vh, 720px);
}

.cth-booklet-read :where(.sv-body, .cth-reader-body) {
  width: min(100% - 32px, var(--cth-shell));
  margin-inline: auto;
  color: var(--cth-ink);
  font: 16px/1.85 var(--cth-serif);
}

.cth-booklet-read #app.sv-loading {
  position: relative;
  min-height: min(70vh, 720px);
  isolation: isolate;
  pointer-events: none;
}

.cth-booklet-read #app.sv-loading::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: color-mix(in srgb, var(--cth-paper) 58%, transparent);
  content: "";
}

.cth-booklet-read #app.sv-loading::after {
  position: fixed;
  z-index: 2;
  top: 50%;
  left: 50%;
  padding: 9px 14px;
  transform: translate(-50%, -50%);
  border: 1px solid var(--cth-line);
  border-radius: 999px;
  background: var(--cth-paper);
  box-shadow: var(--cth-shadow);
  color: var(--cth-brand);
  content: "正在载入…";
  font: 500 14px/1.4 var(--cth-sans);
}

/* sunday */
.cth-sunday {
  overflow-x: hidden;
  overflow-x: clip;
  margin: 0;
  background: var(--cth-canvas);
}

.cth-booklet .booklet-page-head {
  display: block;
  position: sticky;
  z-index: 30;
  top: 0;
  width: 100vw;
  min-height: 72px;
  margin-left: calc(50% - 50vw);
  padding: max(10px, env(safe-area-inset-top)) 0 10px;
  border-bottom: 1px solid var(--cth-line);
  background: var(--cth-paper);
  box-shadow: 0 3px 14px color-mix(in srgb, var(--cth-ink) 6%, transparent);
  color: var(--cth-ink);
}

.cth-booklet .booklet-page-head-inner {
  display: flex;
  align-items: center;
  gap: 10px;
  width: min(calc(100% - 32px), var(--cth-shell));
  min-height: 52px;
  margin-inline: auto;
  padding-right: env(safe-area-inset-right);
  padding-left: env(safe-area-inset-left);
}

.cth-booklet .booklet-page-head .lt-back {
  display: grid;
  width: 44px;
  height: 44px;
  margin-left: 0;
  place-items: center;
  border-radius: 50%;
  color: var(--cth-brand);
}

.cth-booklet .booklet-page-head .lt-back:active {
  background: color-mix(in srgb, var(--cth-brand) 9%, transparent);
}

.cth-booklet .booklet-page-head .lt-t {
  color: var(--cth-ink);
}

.cth-booklet .booklet-page-head .lt-s {
  color: var(--cth-muted-strong);
  opacity: 1;
}

@media (min-width: 768px) {
  .cth-booklet .booklet-page-head {
    width: 100%;
    margin-left: 0;
  }
}

.cth-sunday .sd-hero {
  margin-bottom: 24px;
  padding: 4px 2px 0;
}

.cth-sunday .sd-sec.booklet-group {
  margin: 0 0 20px;
  padding: 20px;
  box-shadow: none;
}

.cth-sunday .sd-sec.booklet-group .sd-h {
  margin-top: 0;
}

.cth-sunday .sy-f {
  margin: 0;
  padding: 16px 0;
  border-top: 1px solid var(--cth-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.cth-sunday .sy-f:first-of-type {
  border-top: 0;
}

.cth-sunday .sy-fill {
  min-height: 44px;
  padding: 8px 12px;
  border-color: var(--cth-line);
  background: var(--cth-canvas);
  color: var(--cth-brand);
}

.cth-sunday .sy-in {
  min-height: 88px;
  border-color: var(--cth-line);
  background: var(--cth-paper);
  color: var(--cth-ink);
  font-size: 16px;
}

.cth-sunday .sy-in:focus {
  border-color: var(--cth-brand);
  outline: 3px solid color-mix(in srgb, var(--cth-brand) 18%, transparent);
  outline-offset: 1px;
}

.cth-sunday .sy-tm {
  --tm-progress: 0;
  position: relative;
  padding: 8px 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-align: center;
}

.cth-sunday .sy-dial {
  position: relative;
  width: min(100%, 420px);
  height: auto;
  min-height: 108px;
  margin: 0 auto;
  padding: 8px 0 30px;
}

.cth-sunday .sy-dial::before,
.cth-sunday .sy-dial::after {
  position: absolute;
  right: 0;
  bottom: 11px;
  left: 0;
  height: 3px;
  border-radius: 999px;
  content: "";
}

.cth-sunday .sy-dial::before {
  background: var(--cth-line);
}

.cth-sunday .sy-dial::after {
  background: var(--cth-brand);
  transform: scaleX(var(--tm-progress));
  transform-origin: left center;
  transition: transform .24s linear, background .18s ease;
}

.cth-sunday .sy-tm[data-mode="pause"] .sy-dial::after {
  background: color-mix(in srgb, var(--cth-warm) 72%, var(--cth-brand));
}

.cth-sunday .sy-tm[data-mode="done"] .sy-dial::after {
  background: var(--cth-ink);
}

.cth-sunday .sy-dial > svg {
  display: none;
}

.cth-sunday .sy-dial-core {
  position: static;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 70px;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.cth-sunday .sy-tm-state {
  min-height: 18px;
  color: var(--cth-muted-strong);
  font-size: 12px;
  font-weight: 650;
  letter-spacing: .06em;
}

.cth-sunday .sy-tmn {
  margin: 4px 0 3px;
  color: var(--cth-ink);
  font: 600 clamp(34px, 8vw, 40px)/1 var(--cth-sans);
  font-variant-numeric: tabular-nums;
  letter-spacing: -.035em;
}

.cth-sunday .sy-tm-goal {
  color: var(--cth-muted-strong);
  font-size: 12px;
}

.cth-sunday .sy-tms {
  max-width: 440px;
  margin: 12px auto 16px;
  color: var(--cth-muted-strong);
  font-size: 13px;
  line-height: 1.65;
}

.cth-sunday .sy-tmbs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

.cth-sunday .sy-tmb {
  min-width: 128px;
  min-height: 48px;
  justify-content: center;
  padding: 10px 20px;
  border: 1px solid var(--cth-brand);
  border-radius: 999px;
  background: var(--cth-brand);
  box-shadow: none;
  color: var(--cth-paper);
  transition: background .18s ease, border-color .18s ease, opacity .18s ease;
}

.cth-sunday .sy-tmb:active {
  transform: none;
  border-color: var(--cth-brand-hover);
  background: var(--cth-brand-hover);
}

.cth-sunday .sy-tmb-2 {
  min-width: 104px;
  border-color: var(--cth-line);
  background: transparent;
  color: var(--cth-brand);
}

.cth-sunday .sy-tmb-2:active {
  border-color: var(--cth-brand);
  background: color-mix(in srgb, var(--cth-brand) 8%, transparent);
}

.cth-sunday .booklet-disclosure {
  overflow: hidden;
  margin: 0 0 20px;
  border-block: 1px solid var(--cth-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.cth-sunday .booklet-disclosure .lrow,
.cth-sunday .sd-fold-hd {
  min-height: 56px;
  padding: 12px 2px;
  background: transparent;
}

.cth-sunday .sd-fold-bd {
  padding: 8px 0 12px;
}

.cth-sunday .sd-truth {
  overflow: hidden;
  margin: 0 0 20px;
  padding: 0 20px;
  border: 1px solid var(--cth-line);
  border-radius: var(--cth-radius);
  background: var(--cth-paper);
  box-shadow: none;
}

.cth-sunday .sd-truth-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 0 12px;
  border-bottom: 1px solid var(--cth-line);
}

.cth-sunday .sd-truth-head .sd-h {
  margin: 0;
}

.cth-sunday .sd-truth-count {
  flex: 0 0 auto;
  color: var(--cth-muted-strong);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

.cth-sunday .sd-truth-group {
  padding: 18px 0;
  border-bottom: 1px solid var(--cth-line);
}

.cth-sunday .sd-truth-group:last-child {
  border-bottom: 0;
}

.cth-sunday .sd-truth-empty {
  margin: 0;
  padding: 24px 0 26px;
  color: var(--cth-muted-strong);
  font-size: 14px;
  line-height: 1.65;
  text-align: center;
}

.cth-sunday .sy-vpick,
.cth-sunday ~ .sy-vpick {
  color: var(--cth-ink);
}

.sy-vpick-scrim {
  position: fixed;
  z-index: 10020;
  inset: 0;
  display: block;
  width: auto;
  height: auto;
  background: color-mix(in srgb, var(--cth-ink) 48%, transparent);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
}

.sy-vpick-scrim.on {
  opacity: 1;
  pointer-events: auto;
}

.sy-vpick .sy-vpick-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 8px 18px;
  border-bottom: 1px solid var(--cth-line);
}

.sy-vpick .sy-vpick-actions button {
  min-width: 64px;
  min-height: 44px;
  padding: 8px 12px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--cth-brand);
  font-weight: 650;
}

.sy-vpick .sy-vpick-actions button:active {
  background: color-mix(in srgb, var(--cth-brand) 8%, transparent);
}

.sy-vpick .sy-vpick-actions button:disabled {
  color: var(--cth-muted-strong);
  opacity: .45;
}

.sunday-timer {
  padding: 22px;
  border: 1px solid var(--cth-line);
  border-radius: var(--cth-radius);
  background: var(--cth-paper);
}

.sunday-timer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.sunday-timer-actions button {
  min-width: 44px;
  min-height: 44px;
}

/* related */
.cth-related {
  overflow-x: hidden;
  overflow-x: clip;
  margin: 0;
  background: var(--cth-canvas);
}

.cth-related .booklet-group {
  margin: 0 0 18px;
  padding: 20px;
  box-shadow: none;
}

.cth-related .booklet-disclosure {
  overflow: hidden;
  margin: 0 0 18px;
  border-block: 1px solid var(--cth-line);
  border-radius: 0;
  background: transparent;
}

.cth-related .booklet-disclosure .lrow {
  min-height: 56px;
  padding: 12px 2px;
  background: transparent;
}

.cth-related .sd-h {
  margin-top: 0;
  color: var(--cth-ink);
  font-family: var(--cth-serif);
}

.cth-related .sd-sub {
  color: var(--cth-muted-strong);
}

.cth-related-dy .cth-au {
  margin: 0;
  padding: 14px 0;
  border-width: 1px 0 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.cth-related-dy .dyi-th {
  min-width: 44px;
  min-height: 44px;
  overflow: hidden;
  border: 1px solid var(--cth-line);
  border-radius: 10px;
  background: var(--cth-paper);
  box-shadow: none !important;
}

.cth-related-demo .dmp {
  padding: 20px;
}

.cth-related-demo .dmp p {
  color: var(--cth-ink);
  font-size: 16px;
}

.cth-related-psrp .ps-hero,
.cth-related-psrp .ps-item {
  margin-top: 0;
  margin-bottom: 18px;
}

.cth-related-psrp .ps-lead,
.cth-related-psrp .ps-t {
  color: var(--cth-ink);
}

.cth-related-psrp .ps-note,
.cth-related-psrp .ps-s {
  color: var(--cth-muted-strong);
}

.cth-related-psrp .ps-v {
  background: var(--cth-ink);
  box-shadow: 0 8px 24px color-mix(in srgb, var(--cth-ink) 14%, transparent);
}

.booklet-related {
  margin-top: 24px;
  border-block: 1px solid var(--cth-line);
}

.booklet-related summary {
  min-height: 44px;
  padding: 12px 0;
  color: var(--cth-ink);
  font-weight: 650;
  cursor: pointer;
}

/* states */
.cth-booklet :where(.ix-empty, .gd-empty, .loading, .cth-error),
.cth-booklet-read :where(.ix-empty, .gd-empty, .loading, .cth-error) {
  padding: 28px 20px;
  border: 1px solid var(--cth-line);
  border-radius: var(--cth-radius);
  background: var(--cth-paper);
  color: var(--cth-muted-strong);
  text-align: center;
}

.cth-booklet .cth-error,
.cth-booklet-read .cth-error {
  border-color: color-mix(in srgb, var(--cth-warm) 72%, var(--cth-line));
  color: var(--cth-ink);
}

.cth-booklet .is-current {
  background: color-mix(in srgb, var(--cth-brand) 10%, var(--cth-paper));
  color: var(--cth-brand);
}

.cth-booklet .is-complete {
  color: var(--cth-brand);
}

/* responsive */
@media (max-width: 767px) {
  .cth-booklet .ls-wrap,
  .cth-booklet .cth-brand-row,
  .cth-booklet .booklet-page-head-inner,
  .cth-booklet-read #app,
  .cth-booklet-read :where(.wrap, .cth-au) {
    width: min(100% - 30px, var(--cth-shell, 760px));
  }

  .cth-conf #cfContinue {
    width: max-content;
    min-height: 44px;
    margin-top: 16px;
    padding: 8px 16px;
    font-size: 15px;
    line-height: 1.2;
  }

  html body.cth-booklet {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  .cth-index .booklet-brand-inner,
  .cth-years .booklet-brand-inner {
    gap: 9px;
    width: min(100% - 30px, var(--cth-shell));
    min-height: 44px;
    padding-top: 8px;
  }

  .cth-index .booklet-brand-mark,
  .cth-years .booklet-brand-mark {
    position: relative;
    width: 38px;
    min-width: 38px;
    height: 38px;
    min-height: 38px;
    border-color: transparent;
    background: transparent;
  }

  .cth-index .booklet-brand-mark::before {
    content: none;
  }

  .cth-index .booklet-brand-mark img,
  .cth-years .booklet-brand-mark img {
    display: block;
    width: 36px;
    height: 36px;
    object-fit: contain;
  }

  .cth-index .booklet-brand-copy h1,
  .cth-years .booklet-brand-copy h1 {
    font-size: 20px;
    line-height: 1.05;
  }

  .cth-index .booklet-brand-copy p,
  .cth-years .booklet-brand-copy p {
    margin-top: 2px;
    font-size: 11px;
    line-height: 1.05;
  }

  .cth-index .ls-wrap {
    width: min(100% - 30px, var(--cth-shell));
    padding-top: 16px;
  }

  .cth-index .booklet-catalog-nav,
  .cth-years .booklet-catalog-nav {
    justify-content: flex-start;
    width: min(100% - 30px, var(--cth-shell));
    min-height: 55px;
    margin-top: 4px;
    padding-top: 2px;
  }

  .cth-index .booklet-search {
    min-height: 44px;
    padding-inline: 14px;
  }

  .cth-index .booklet-search input {
    min-height: 40px;
    font-size: 15px;
  }

  .cth-index .booklet-section {
    margin-top: 24px;
  }

  .cth-index .booklet-section-heading {
    margin-bottom: 10px;
  }

  .cth-index .booklet-section-heading h2 {
    font-size: 20px;
  }

  .cth-dashboard {
    min-height: 226px;
    padding: 18px;
    border-radius: 18px;
  }

  .cth-dashboard-title,
  .cth-morning-form-heading h2 {
    font-size: 19px;
  }

  .cth-mine-summary {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }

  .cth-week-grid {
    gap: 5px;
  }

  .cth-week-day {
    min-height: 54px;
    border-radius: 9px;
  }

  .cth-week-label {
    font-size: 11px;
  }

  .cth-week-state {
    font-size: 0;
  }

  .cth-week-state::after {
    font-size: 10px;
    content: "○";
  }

  .cth-week-day.is-complete .cth-week-state::after {
    content: "✓";
  }

  .cth-community-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .cth-community-heading > p {
    text-align: left;
  }

  .cth-community-row {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 4px 10px;
  }

  .cth-community-name {
    flex-basis: calc(100% - 70px);
  }

  .cth-community-position {
    order: 3;
    flex-basis: 100%;
  }

  .cth-morning-form {
    padding: 20px;
  }

  .cth-index .booklet-recent {
    grid-auto-columns: 86px;
    gap: 13px;
    padding-bottom: 10px;
  }

  .cth-index .booklet-recent-card > span:first-child {
    padding: 10px 8px 8px 14px;
    border-radius: 7px;
  }

  .cth-index .booklet-cover::before {
    left: 7px;
  }

  .cth-index .booklet-cover-year {
    font-size: 9px;
    letter-spacing: .1em;
  }

  .cth-index .booklet-cover-name {
    font-size: 12px;
    letter-spacing: .04em;
  }

  .cth-index .booklet-cover-series {
    font-size: 8px;
    letter-spacing: .08em;
  }

  .cth-index .booklet-recent-title {
    display: -webkit-box;
    overflow: hidden;
    margin-top: 7px;
    font-size: 12px;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .cth-index .booklet-recent-meta {
    margin-top: 2px;
    font-size: 11px;
  }
}

@media (max-width: 560px) {
  .booklet-hero {
    grid-template-columns: 104px minmax(0, 1fr);
    align-items: start;
  }

  .booklet-group-heading,
  .booklet-row {
    padding-inline: 16px;
  }
}

@media (min-width: 768px) {
  .booklet-recent {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-columns: auto;
    grid-auto-flow: row;
    overflow-x: visible;
    padding-bottom: 2px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cth-booklet,
  .cth-booklet::before,
  .cth-booklet::after,
  .cth-booklet *,
  .cth-booklet *::before,
  .cth-booklet *::after,
  .cth-booklet-read,
  .cth-booklet-read::before,
  .cth-booklet-read::after,
  .cth-booklet-read *,
  .cth-booklet-read *::before,
  .cth-booklet-read *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* 2026-08-07: compact reading-product hierarchy and deterministic feedback. */
.cth-index .cth-mine {
  position: relative;
}

.cth-index .cth-dashboard-title {
  max-width: 23em;
  font-size: clamp(1.38rem, 2.7vw, 1.85rem);
  line-height: 1.34;
}

.cth-index .cth-mine-summary {
  display: block;
  margin-top: clamp(22px, 3.5vw, 32px);
}

.cth-index .cth-mine-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px 20px;
  align-items: end;
  margin-top: 22px;
}

.cth-index .cth-mine-footer .cth-week-grid {
  grid-column: 1 / -1;
  width: 100%;
  margin: 0;
  padding: 0;
}

.cth-index .cth-mine-footer .cth-today-action {
  grid-column: 2;
  justify-self: end;
  min-width: 0;
  margin-top: 2px;
}

.cth-index .cth-dashboard-settings {
  top: .85rem;
  right: .65rem;
}

.cth-morning-dialog .cth-morning-form-body {
  flex: 0 1 auto;
  max-height: calc(min(82dvh, 700px) - 150px);
}

.cth-morning-dialog .cth-form-status.is-success { color: #176d68; }
.cth-morning-dialog .cth-form-status.is-warning { color: #8a681d; }

.cth-toast {
  position: fixed;
  left: 50%;
  bottom: calc(6.4rem + env(safe-area-inset-bottom));
  z-index: 2147482000;
  max-width: calc(100vw - 40px);
  padding: .72rem 1rem;
  border-radius: 999px;
  background: rgba(20, 47, 43, .94);
  box-shadow: 0 12px 34px rgba(14, 45, 41, .2);
  color: #fff;
  font-size: .88rem;
  opacity: 0;
  transform: translate(-50%, 8px);
  transition: opacity .2s ease, transform .2s ease;
  pointer-events: none;
}

.cth-toast.is-visible {
  opacity: 1;
  transform: translate(-50%, 0);
}

.cth-community-page {
  width: min(1040px, calc(100% - 32px));
}

.cth-community-page__count {
  display: inline-flex;
  min-width: 4.5rem;
  align-items: baseline;
  justify-content: flex-end;
  gap: .22rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.cth-community-page__count strong {
  font-size: 1.34rem;
  font-weight: 520;
}

.cth-community-page__count small {
  font-size: .82rem;
  font-weight: 520;
}

.cth-week .ls-wrap {
  width: min(960px, calc(100% - 32px));
}

.cth-week .tl.booklet-group {
  overflow: hidden;
  border: 1px solid rgba(31, 91, 84, .1);
  border-radius: 20px;
  background: rgba(255, 255, 255, .74);
  box-shadow: 0 14px 38px rgba(20, 65, 59, .055);
}

.cth-week .tl-b {
  min-height: 76px;
  padding: 14px 18px;
}

.cth-week .tl-tp {
  margin-top: 4px;
  color: #617a76 !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
}

@media (max-width: 720px) {
  .cth-index .cth-dashboard-title {
    max-width: 19em;
    font-size: clamp(1.3rem, 5.7vw, 1.58rem);
  }

  .cth-index .cth-mine-footer {
    grid-template-columns: minmax(0, 1fr) auto;
    margin-top: 18px;
  }

  .cth-index .cth-mine-footer .cth-today-action {
    min-height: 40px;
    padding: .56rem .9rem;
    font-size: .84rem;
  }

  .cth-morning-dialog,
  .cth-morning-dialog[open] {
    width: calc(100vw - 28px);
    max-width: calc(100vw - 28px);
    max-height: calc(100dvh - 72px);
  }

  .cth-morning-dialog .cth-morning-form {
    max-height: calc(100dvh - 72px);
  }

  .cth-morning-dialog .cth-morning-form-body {
    max-height: calc(100dvh - 210px);
  }

  .cth-community-page {
    width: calc(100% - 24px);
  }

  .cth-community-page__row {
    min-height: 5.5rem;
  }

  .cth-week .ls-wrap {
    width: calc(100% - 24px);
  }

  .cth-week .booklet-week-hero {
    gap: 18px;
  }

  .cth-week .tl-b {
    align-items: center;
    min-height: 74px;
    padding: 14px;
  }

  .cth-week .tl-n {
    margin-top: 0;
  }
}

@media (max-width: 380px) {
  .cth-index .cth-mine-footer {
    grid-template-columns: 1fr;
  }

  .cth-index .cth-mine-footer .cth-today-action {
    grid-column: 1;
  }
}

/* Seven Conferences theme-native combobox */
.cth-select {
  position: relative;
  width: 100%;
  color: var(--cth-ink);
  font-family: var(--cth-sans);
}

.cth-select-trigger {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 50px;
  padding: 12px 48px 12px 16px;
  border: 1px solid var(--cth-line);
  border-radius: 14px;
  background: color-mix(in srgb, var(--cth-paper) 96%, var(--cth-canvas));
  color: var(--cth-ink);
  font: 620 14.5px/1.45 var(--cth-sans);
  text-align: left;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.cth-select-trigger::before {
  position: absolute;
  top: 10px;
  bottom: 10px;
  left: 5px;
  width: 2px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--cth-brand) 24%, transparent);
  content: "";
}

.cth-select-trigger::after {
  position: absolute;
  top: 50%;
  right: 18px;
  width: 8px;
  height: 8px;
  transform: translateY(-68%) rotate(45deg);
  border-right: 1.5px solid var(--cth-brand);
  border-bottom: 1.5px solid var(--cth-brand);
  content: "";
  transition: transform .16s ease;
}

.cth-select.is-open .cth-select-trigger {
  border-color: var(--cth-brand);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--cth-brand) 14%, transparent);
}

.cth-morning-dialog .cth-select-panel {
  position: relative;
  top: auto;
  margin-top: 8px;
}

.cth-select.is-open .cth-select-trigger::after {
  transform: translateY(-25%) rotate(225deg);
}

.cth-select-trigger:focus-visible,
.cth-select-search:focus-visible,
.cth-select-option:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--cth-brand) 18%, transparent);
  outline-offset: 1px;
}

.cth-select-panel {
  position: absolute;
  z-index: 120;
  top: calc(100% + 7px);
  right: 0;
  left: 0;
  overflow: hidden;
  padding: 7px;
  border: 1px solid color-mix(in srgb, var(--cth-brand) 22%, var(--cth-line));
  border-radius: 16px;
  background: var(--cth-paper);
  box-shadow: 0 18px 42px color-mix(in srgb, var(--cth-ink) 15%, transparent),
    0 3px 9px color-mix(in srgb, var(--cth-ink) 8%, transparent);
}

.cth-select-panel[hidden] { display: none; }

.cth-select-search {
  width: 100%;
  min-height: 42px;
  margin-bottom: 6px;
  padding: 8px 12px;
  border: 1px solid var(--cth-line);
  border-radius: 9px;
  background: color-mix(in srgb, var(--cth-canvas) 54%, var(--cth-paper));
  color: var(--cth-ink);
  font: 500 14px/1.4 var(--cth-sans);
  box-sizing: border-box;
}

.cth-select-list {
  overflow-y: auto;
  max-height: min(330px, 46vh);
  padding: 2px;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;
}

.cth-select-option {
  position: relative;
  display: block;
  width: 100%;
  min-height: 46px;
  padding: 10px 42px 10px 14px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--cth-ink);
  font: 520 14.5px/1.5 var(--cth-sans);
  text-align: left;
}

.cth-select-option:hover,
.cth-select-option.is-active {
  background: color-mix(in srgb, var(--cth-brand) 7%, var(--cth-paper));
}

.cth-select-option.is-selected {
  background: color-mix(in srgb, var(--cth-brand) 11%, var(--cth-paper));
  color: var(--cth-brand);
  font-weight: 680;
}

.cth-select-option.is-selected::before {
  position: absolute;
  top: 8px;
  bottom: 8px;
  left: 2px;
  width: 3px;
  border-radius: 999px;
  background: var(--cth-brand);
  content: "";
}

.cth-select-option.is-selected::after {
  position: absolute;
  top: 50%;
  right: 17px;
  width: 12px;
  height: 6px;
  transform: translateY(-65%) rotate(-45deg);
  border-bottom: 2px solid var(--cth-brand);
  border-left: 2px solid var(--cth-brand);
  content: "";
}

.cth-select-option:disabled,
.cth-select.is-disabled { opacity: .48; }

@media (max-width: 560px) {
  .cth-select-panel { max-height: min(390px, 54vh); }
  .cth-select-option { min-height: 48px; }
}

.cth-locality-picker {
  display: grid;
  gap: 14px;
  width: 100%;
}

.cth-locality-picker-field {
  display: grid;
  gap: 7px;
  width: 100%;
}

.cth-locality-picker-field[hidden] {
  display: none;
}

.cth-locality-picker-label {
  color: var(--cth-muted-strong);
  font: 650 13px/1.4 var(--cth-sans);
  letter-spacing: .025em;
}

.cth-morning-field {
  display: grid;
  gap: 7px;
  margin-top: 14px;
  color: var(--cth-muted-strong);
  font: 650 13px/1.4 var(--cth-sans);
}

.cth-locality-picker-status {
  min-height: 20px;
  margin: -2px 2px 0;
  color: var(--cth-muted-strong);
  font: 500 12.5px/1.55 var(--cth-sans);
}

.cth-morning-picker-field {
  animation: cth-picker-reveal .2s ease both;
}

.cth-morning-picker-field[hidden] {
  display: none;
}

@media (max-width: 640px) {
  .cth-morning-dialog {
    inset: auto 10px calc(var(--cth-mobile-nav-safe, 76px) + env(safe-area-inset-bottom)) 10px;
    width: calc(100% - 20px);
    max-width: none;
    height: min(720px, calc(100dvh - var(--cth-mobile-nav-safe, 76px) - env(safe-area-inset-bottom) - 10px));
    max-height: calc(100dvh - var(--cth-mobile-nav-safe, 76px) - env(safe-area-inset-bottom) - 10px);
    margin: auto 0 0;
    border-radius: 24px;
  }

  .cth-morning-form {
    height: 100%;
    max-height: none;
  }

  .cth-morning-form-heading {
    padding: 18px 18px 14px;
  }

  .cth-morning-form-body {
    padding: 18px 16px 24px;
  }

  .cth-morning-columns {
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
  }

  .cth-morning-form-actions {
    padding: 10px 16px calc(12px + env(safe-area-inset-bottom));
  }

  .cth-morning-dialog .cth-select-list {
    max-height: min(280px, 38dvh);
    scroll-padding-block: 8px;
    scrollbar-gutter: stable;
  }

  .cth-morning-dialog .cth-select-search {
    font-size: 16px;
  }

  .cth-morning-dialog .cth-select-trigger,
  .cth-form-submit {
    min-height: 48px;
  }
}

.cth-booklet {
  --cth-catalog-brand-height: 46px;
  --cth-catalog-nav-height: 54px;
}

.cth-booklet .booklet-brand-inner {
  gap: 8px;
  height: var(--cth-catalog-brand-height);
  min-height: var(--cth-catalog-brand-height);
  padding-top: 14px;
  padding-bottom: 0;
  box-sizing: border-box;
}

.cth-booklet .booklet-brand-mark {
  width: 28px;
  min-width: 28px;
  height: 28px;
  min-height: 28px;
}

.cth-booklet .booklet-brand-mark img {
  width: 28px;
  height: 28px;
}

.cth-booklet .booklet-brand-copy {
  display: flex;
  align-items: center;
  height: 100%;
}

.cth-booklet .booklet-brand-copy h1 {
  margin-block: 0;
  font: 700 20px/1 var(--cth-sans);
  letter-spacing: 2px;
}

.cth-booklet .booklet-catalog-nav {
  height: var(--cth-catalog-nav-height);
  min-height: var(--cth-catalog-nav-height);
  margin-top: 0;
  padding-top: 10px;
  padding-bottom: 0;
  box-sizing: border-box;
}

@keyframes cth-picker-reveal {
  from { opacity: 0; transform: translateY(-3px); }
  to { opacity: 1; transform: translateY(0); }
}

/* 2026-08-06: morning revival experience refinement */
.cth-mine {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(20, 98, 91, .13);
  background:
    radial-gradient(circle at 92% 8%, rgba(241, 205, 114, .18), transparent 30%),
    linear-gradient(145deg, rgba(255, 255, 255, .98), rgba(248, 252, 250, .96));
  box-shadow: 0 18px 42px rgba(21, 72, 67, .10);
}
.cth-mine .cth-dashboard-heading { padding-right: 4.25rem; }
.cth-mine .cth-dashboard-title {
  max-width: 18ch;
  font-weight: 720;
  letter-spacing: -.035em;
  line-height: 1.2;
}
.cth-dashboard-settings {
  position: absolute;
  top: 1.35rem;
  right: 1.35rem;
  display: inline-grid;
  width: 2.9rem;
  height: 2.9rem;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(25, 116, 106, .14);
  border-radius: 1rem;
  background: rgba(236, 246, 243, .9);
  color: #167a70;
  box-shadow: 0 8px 22px rgba(20, 98, 91, .09);
  cursor: pointer;
}
.cth-dashboard-settings svg {
  width: 1.35rem;
  height: 1.35rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}
.cth-mine-summary { align-items: end; }
.cth-mine .cth-dashboard-action {
  min-height: 3.2rem;
  padding-inline: 1.35rem;
  border-radius: 1rem;
  box-shadow: 0 10px 24px rgba(20, 112, 102, .18);
}
.cth-mine .cth-week-grid { gap: .55rem; }
.cth-mine .cth-week-day {
  min-width: 0;
  border-color: rgba(33, 96, 89, .12);
  border-radius: .9rem;
  background: rgba(246, 250, 249, .86);
}
.cth-mine .cth-week-day.is-current {
  border-color: rgba(20, 120, 109, .56);
  background: rgba(224, 241, 237, .76);
  box-shadow: inset 0 0 0 1px rgba(20, 120, 109, .08);
}
.cth-morning-dialog {
  border: 0;
  border-radius: 1.75rem;
  background: #fbfdfc;
  box-shadow: 0 30px 90px rgba(7, 40, 37, .28);
}
.cth-morning-dialog .cth-morning-form { background: transparent; }
.cth-morning-dialog .cth-morning-form-heading {
  position: sticky;
  top: 0;
  z-index: 4;
  background: linear-gradient(180deg, #fbfdfc 82%, rgba(251, 253, 252, 0));
}
.cth-morning-dialog .cth-select-trigger {
  min-height: 3.65rem;
  border-color: rgba(37, 98, 91, .17);
  border-radius: 1rem;
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 5px 18px rgba(18, 78, 71, .045);
}
.cth-morning-dialog .cth-select-menu {
  max-height: min(19rem, 42dvh);
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-gutter: stable;
}
.cth-morning-dialog .cth-select-option {
  min-height: 3.15rem;
  border-radius: .8rem;
}
.cth-morning-dialog .cth-locality-picker-status:empty { display: none; }
.cth-mr-context { font-size: 1rem; font-weight: 700; }
.cth-mh-t, .cth-mr-title { font-weight: 760; }
.cth-mh::after, .cth-mr-title::after { content: none !important; display: none !important; }
.cth-donebar + .chapnav a,
.cth-day-nav a {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: .95rem !important;
}

@media (max-width: 720px) {
  .cth-morning-dialog[open] {
    box-sizing: border-box;
    left: 0;
    right: 0;
    width: calc(100vw - 24px);
    max-width: calc(100vw - 24px);
    max-height: calc(100dvh - 32px);
    margin: 16px auto;
  }
  .cth-morning-dialog .cth-morning-form {
    max-height: calc(100dvh - 32px);
    padding-bottom: calc(6.5rem + env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  .cth-mine { padding: 1.45rem; }
  .cth-dashboard-settings { top: 1.15rem; right: 1.15rem; }
  .cth-mine-summary { align-items: stretch; }
  .cth-mine .cth-dashboard-action { width: fit-content; }
}

.cth-community-more-link {
  display: flex;
  width: fit-content;
  margin: 1rem 0 0 auto;
  padding: .7rem 1rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, .68);
  color: #176f67;
  font-weight: 700;
  text-decoration: none;
}

.cth-community-preview-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 3.4rem;
  color: #6f8581;
  font-size: .8rem;
}

.cth-community-preview-footer .cth-community-more-link {
  flex: 0 0 auto;
  margin-top: 0;
}
.cth-community-body {
  min-height: 100dvh;
  margin: 0;
  background:
    radial-gradient(circle at 8% 0%, rgba(173, 217, 206, .28), transparent 34rem),
    #edf5f2;
  color: #102d2a;
}
.cth-community-page {
  width: min(920px, calc(100% - 32px));
  margin: 0 auto;
  padding: 2.5rem 0 6rem;
}
.cth-community-page__header {
  display: grid;
  grid-template-columns: 3rem 1fr;
  gap: 1rem;
  align-items: start;
  margin-bottom: 1.6rem;
}
.cth-community-page__header h1 {
  margin: .22rem 0 .4rem;
  font-size: clamp(1.9rem, 5vw, 3rem);
  line-height: 1.12;
  letter-spacing: -.04em;
}
.cth-community-back {
  display: grid;
  width: 3rem;
  height: 3rem;
  place-items: center;
  border: 1px solid rgba(24, 95, 88, .14);
  border-radius: 1rem;
  background: rgba(255,255,255,.76);
  color: #176f67;
  font-size: 2rem;
  line-height: 1;
  text-decoration: none;
}
.cth-community-page__summary { margin: 0; color: #607b77; }
.cth-community-page__controls {
  display: flex;
  gap: .85rem;
  align-items: center;
  margin-bottom: 1rem;
  padding: .8rem;
  border: 1px solid rgba(22, 91, 84, .11);
  border-radius: 1.3rem;
  background: rgba(255,255,255,.82);
  box-shadow: 0 15px 38px rgba(20, 76, 70, .08);
}
.cth-community-search {
  display: flex;
  flex: 1;
  gap: .65rem;
  align-items: center;
  min-width: 0;
  padding: 0 .85rem;
}
.cth-community-search svg {
  width: 1.25rem;
  fill: none;
  stroke: #527570;
  stroke-width: 1.8;
}
.cth-community-search input {
  width: 100%;
  min-height: 2.7rem;
  border: 0;
  outline: 0;
  background: transparent;
  color: inherit;
  font: inherit;
}
.cth-community-sort { display: flex; gap: .35rem; }
.cth-community-sort button,
.cth-community-load-more,
.cth-community-page__state button {
  border: 0;
  border-radius: .85rem;
  background: transparent;
  color: #527570;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.cth-community-sort button { min-height: 2.7rem; padding: 0 .9rem; }
.cth-community-sort button[aria-pressed="true"] { background: #dceee9; color: #106c62; }
.cth-community-sort-note {
  margin: 0 .2rem;
  color: #71817e;
  font-size: .82rem;
  line-height: 1.55;
}

.cth-community-page__results {
  overflow: hidden;
  border: 1px solid rgba(22, 91, 84, .11);
  border-radius: 1.5rem;
  background: rgba(255,255,255,.88);
  box-shadow: 0 20px 52px rgba(20, 76, 70, .09);
}
.cth-community-page__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.2rem;
  align-items: center;
  min-height: 6.4rem;
  padding: 1.15rem 1.4rem;
}
.cth-community-page__row + .cth-community-page__row { border-top: 1px solid rgba(31, 91, 84, .1); }
.cth-community-page__identity { display: grid; gap: .38rem; text-align: center; }
.cth-community-page__identity strong { font-size: 1.08rem; }
.cth-community-page__identity span { color: #5d7874; }
.cth-community-page__count { display: grid; min-width: 4.4rem; color: #176f67; font-size: 1.45rem; text-align: center; }
.cth-community-page__count small { font-size: .72rem; font-weight: 600; }
.cth-community-page__state {
  display: grid;
  min-height: 12rem;
  gap: .55rem;
  place-content: center;
  color: #607b77;
  text-align: center;
}
.cth-community-load-more {
  display: block;
  margin: 1rem auto 0;
  padding: .8rem 1.3rem;
  background: #dceee9;
  color: #106c62;
}
.cth-community-load-more[hidden] { display: none; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
@media (max-width: 640px) {
  .cth-community-page {
    width: min(100% - 24px, 920px);
    padding-top: 1.2rem;
    padding-bottom: calc(7rem + env(safe-area-inset-bottom));
  }
  .cth-community-page__controls { align-items: stretch; flex-direction: column; }
  .cth-community-sort { display: grid; grid-template-columns: 1fr 1fr; }
  .cth-community-page__row { padding-inline: 1rem; }
}

/* 2026-08-06: quiet, borderless morning dashboard and community directory. */
.cth-mine .cth-dashboard-heading {
  padding-right: 2.8rem;
}

.cth-dashboard-settings {
  top: 1rem;
  right: .85rem;
  width: 2.75rem;
  height: 2.75rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #276e67;
}

.cth-dashboard-settings svg {
  width: 1.18rem;
  height: 1.18rem;
  stroke-width: 1.7;
}

.cth-dashboard-settings:hover,
.cth-dashboard-settings:focus-visible {
  color: var(--cth-brand);
}

.cth-dashboard-settings:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--cth-brand) 28%, transparent);
  outline-offset: -7px;
}

.cth-mine-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 1rem;
}

.cth-mine .cth-dashboard-action,
.cth-mine-summary .cth-dashboard-action {
  min-height: 2.75rem;
  width: auto;
  padding: .55rem .2rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--cth-brand) !important;
  font-size: .95rem;
  font-weight: 680;
}

.cth-mine-summary .cth-dashboard-action {
  justify-self: end;
  white-space: nowrap;
}

.cth-mine .cth-week-grid {
  gap: 0;
  margin-top: 1.2rem;
}

.cth-mine .cth-week-day,
.cth-mine .cth-week-day.is-current,
.cth-mine .cth-week-day.is-complete {
  min-height: 3.15rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.cth-mine .cth-week-label {
  color: #607b77;
  font-weight: 620;
}

.cth-mine .cth-week-day.is-current .cth-week-label,
.cth-mine .cth-week-day.is-complete .cth-week-label {
  color: var(--cth-brand);
}

.cth-mine .cth-week-state {
  width: .45rem;
  height: .45rem;
  margin: .42rem auto 0;
  border: 1px solid #8aa09c;
  border-radius: 50%;
  color: transparent;
  font-size: 0;
}

.cth-mine .cth-week-state::after {
  content: none;
}

.cth-mine .cth-week-day.is-current .cth-week-state {
  border-color: var(--cth-brand);
}

.cth-mine .cth-week-day.is-complete .cth-week-state {
  border-color: var(--cth-brand);
  background: var(--cth-brand);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--cth-brand) 10%, transparent);
}

.cth-morning-dialog,
.cth-morning-dialog[open] {
  inset: auto;
  top: 50%;
  right: auto;
  bottom: auto;
  left: 50%;
  width: min(720px, calc(100vw - 32px));
  max-width: min(720px, calc(100vw - 32px));
  height: fit-content;
  max-height: min(82dvh, 720px);
  margin: 0;
  border-radius: 1.5rem;
  transform: translate(-50%, -50%);
}

.cth-morning-dialog .cth-morning-form {
  grid-template-rows: auto minmax(0, auto) auto;
  width: 100%;
  height: auto;
  max-height: min(82dvh, 720px);
  padding-bottom: 0;
  overflow: hidden;
}

.cth-morning-dialog .cth-morning-form-heading {
  position: relative;
  padding: 1.5rem 1.65rem .85rem;
  border-bottom: 0;
  background: transparent;
}

.cth-morning-dialog .cth-morning-form-body {
  min-height: 0;
  padding: .75rem 1.65rem 1rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.cth-morning-dialog .cth-morning-form-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: .55rem 1.65rem 1.25rem;
  border-top: 0;
  background: transparent;
}

#cthMorningClose,
.cth-morning-dialog .cth-form-submit {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

#cthMorningClose {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  place-items: center;
  color: #253c39;
  font-size: 1.55rem;
}

.cth-morning-dialog .cth-form-submit {
  min-height: 2.75rem;
  width: auto;
  margin-left: auto;
  padding: .45rem .2rem;
  color: var(--cth-brand) !important;
  font-size: .95rem;
  font-weight: 680;
}

.cth-community-more-link {
  gap: .25rem;
  padding: .65rem 0;
  border-radius: 0;
  background: transparent;
  color: #286f68;
  font-size: .95rem;
  font-weight: 500;
}

#cthDailyRanking > .cth-dashboard-muted:only-child {
  display: grid;
  min-height: 12rem;
  margin: 0;
  padding: 1.5rem;
  place-items: center;
  color: #506d69;
  font-size: 1rem;
  font-weight: 560;
  text-align: center;
}

.cth-community-page {
  width: min(760px, calc(100% - 32px));
  padding-top: 2rem;
}

.cth-community-body {
  padding: 0;
  padding-inline: 0 !important;
}

.cth-community-page__header {
  grid-template-columns: 2.75rem minmax(0, 1fr);
  gap: .65rem;
  margin-bottom: 1.4rem;
}

.cth-community-back {
  width: 2.75rem;
  height: 2.75rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-size: 2rem;
}

.cth-community-page__header h1 {
  font-size: clamp(1.85rem, 5vw, 2.55rem);
}

.cth-community-page__controls {
  display: grid;
  gap: .8rem;
  margin-bottom: 1rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.cth-community-search {
  min-height: 3.4rem;
  padding: 0 1rem;
  border: 1px solid rgba(21, 91, 84, .2);
  border-radius: 1rem;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 10px 28px rgba(20, 76, 70, .07);
}

.cth-community-search:focus-within {
  border-color: rgba(20, 120, 109, .5);
  box-shadow: 0 0 0 3px rgba(20, 120, 109, .08);
}

.cth-community-search input {
  min-height: 3.3rem;
}

.cth-community-search input::placeholder {
  color: #78908c;
  opacity: 1;
}

.cth-community-sort {
  display: flex;
  gap: 1.35rem;
  padding: 0 .2rem;
}

.cth-community-sort button {
  min-height: 2.75rem;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: #667f7b;
  font-weight: 500;
}

.cth-community-sort button[aria-pressed="true"] {
  background: transparent;
  box-shadow: inset 0 -2px #167a70;
  color: #126e65;
}

.cth-community-page__results {
  border-radius: 1.25rem;
  box-shadow: 0 14px 40px rgba(20, 76, 70, .07);
}

.cth-community-page__row {
  min-height: 5.85rem;
  padding: 1.1rem 1.25rem;
}

.cth-community-page__identity {
  min-width: 0;
  gap: .32rem;
  text-align: left;
}

.cth-community-page__identity strong,
.cth-community-page__identity span {
  overflow-wrap: break-word;
  word-break: normal;
}

.cth-community-page__identity strong {
  font-size: 1.05rem;
  line-height: 1.35;
}

.cth-community-page__identity span {
  font-size: .92rem;
  line-height: 1.45;
}

.cth-community-page__count {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 4.7rem;
  color: #176f67;
  line-height: 1.08;
  text-align: center;
  white-space: nowrap;
}

.cth-community-page__count-total {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: .18rem;
}

.cth-community-page__count-total strong {
  font-size: clamp(1.55rem, 4.8vw, 2.2rem);
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}

.cth-community-page__count-total small,
.cth-community-page__count-caption {
  font-size: .72rem;
  font-weight: 600;
}

.cth-community-page__count-caption {
  display: block;
  margin-top: .2rem;
  letter-spacing: .12em;
}

.cth-community-page__title-row {
  display: flex;
  align-items: center;
  gap: .55rem;
}

.cth-title-with-info {
  position: relative;
  display: inline-block;
}

.cth-title-info-button,
.cth-booklet button.cth-title-info-button {
  position: absolute;
  top: -.58rem;
  left: calc(100% + .02rem);
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #71817e;
  font-size: 0;
}

.cth-title-info-button::before {
  display: grid;
  width: .72rem;
  height: .72rem;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  content: "i";
  font-size: .5rem;
  font-weight: 700;
  line-height: 1;
}

.cth-community-page__count--daily {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  gap: .2rem;
}

.cth-community-sort[hidden] {
  display: none;
}

.cth-community-page__count--daily strong {
  font-size: clamp(1.55rem, 4.8vw, 2.2rem);
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}

.cth-community-info-button {
  display: inline-grid;
  width: 2.75rem;
  height: 2.75rem;
  margin: -.4rem;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #176f67;
  font-size: 0;
}

.cth-community-info-button::before {
  display: grid;
  width: 1.15rem;
  height: 1.15rem;
  place-items: center;
  border: 1.5px solid currentColor;
  border-radius: 50%;
  content: "!";
  font-size: .78rem;
  font-weight: 700;
  line-height: 1;
}

.cth-community-info {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  place-items: center;
  padding: 1.25rem;
}

.cth-community-info[hidden] { display: none; }

.cth-community-info__scrim {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: rgba(18, 32, 31, .34);
  backdrop-filter: blur(4px);
}

.cth-community-info__dialog {
  position: relative;
  width: min(100%, 25rem);
  padding: 1.45rem;
  border: 1px solid rgba(21, 91, 84, .12);
  border-radius: 1.25rem;
  background: #fff;
  box-shadow: 0 20px 55px rgba(14, 48, 45, .18);
  color: #18322f;
}

.cth-community-info__dialog h2 {
  margin: 0 2.5rem .85rem 0;
  font-size: 1.22rem;
  line-height: 1.4;
}

.cth-community-info__dialog p {
  margin: .55rem 0 0;
  color: #56706c;
  font-size: .96rem;
  line-height: 1.7;
}

.cth-community-info__close {
  position: absolute;
  top: .8rem;
  right: .8rem;
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(21, 91, 84, .06);
  color: #56706c;
  font-size: 1.65rem;
}

.cth-community-load-more,
.cth-community-page__state button {
  padding: .75rem 0;
  border-radius: 0;
  background: transparent;
  color: #176f67;
  font-weight: 500;
}

@media (max-width: 720px) {
  .cth-mine {
    padding: 1.35rem;
  }

  .cth-dashboard-settings {
    top: .75rem;
    right: .55rem;
  }

  .cth-mine-summary {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: .5rem;
  }

  .cth-mine-summary .cth-dashboard-action {
    width: auto;
    padding-inline: 0;
    font-size: .88rem;
  }

  .cth-mine .cth-week-grid {
    margin-top: 1rem;
  }

  .cth-mine .cth-week-day {
    min-height: 3rem;
  }

  .cth-morning-dialog,
  .cth-morning-dialog[open] {
    inset: auto;
    top: 50%;
    right: auto;
    bottom: auto;
    left: 50%;
    width: calc(100vw - 28px);
    max-width: calc(100vw - 28px);
    height: fit-content;
    max-height: 82dvh;
    margin: 0;
    border-radius: 1.35rem;
    transform: translate(-50%, -50%);
  }

  .cth-morning-dialog .cth-morning-form {
    height: auto;
    max-height: 82dvh;
    padding-bottom: 0;
    overflow: hidden;
  }

  .cth-morning-dialog .cth-morning-form-heading {
    padding: 1.25rem 1.2rem .65rem;
  }

  .cth-morning-dialog .cth-morning-form-body {
    padding: .65rem 1.2rem .8rem;
  }

  .cth-morning-dialog .cth-morning-form-actions {
    padding: .45rem 1.2rem 1rem;
  }

  .cth-community-page {
    width: calc(100% - 30px);
    padding-top: 1.25rem;
    padding-bottom: calc(6.5rem + env(safe-area-inset-bottom));
  }

  .cth-community-page__header {
    grid-template-columns: 2.4rem minmax(0, 1fr);
    gap: .35rem;
  }

  .cth-community-back {
    width: 2.4rem;
    height: 2.4rem;
  }

  .cth-community-page__header h1 {
    margin-top: .1rem;
    font-size: 2rem;
    line-height: 1.12;
  }

  .cth-community-page__controls {
    display: grid;
    gap: .55rem;
  }

  .cth-community-sort {
    display: flex;
    gap: 1.25rem;
  }

  .cth-community-page__row {
    gap: .75rem;
    min-height: 5.6rem;
    padding: 1rem;
  }

  .cth-community-page__count {
    min-width: 3.45rem;
  }
}

/* 2026-08-06: morning card, setup sheet, directory and reader refinements. */
.cth-dashboard-date{
  margin:.38rem 0 0;
  color:var(--cth-muted);
  font-size:.82rem;
  font-weight:500;
  letter-spacing:.035em;
}
.cth-mine-summary .cth-dashboard-action{
  min-height:2.65rem;
  padding:.66rem 1rem;
  border-radius:999px;
  background:var(--cth-brand)!important;
  color:#fff!important;
  font-size:.92rem;
  font-weight:600;
  line-height:1.2;
  box-shadow:0 8px 20px rgba(18,115,107,.16);
}
.cth-mine-summary .cth-dashboard-action:active{transform:scale(.98)}
.cth-morning-dialog .cth-morning-form{
  display:flex!important;
  flex-direction:column;
  max-height:min(82dvh,720px);
}
.cth-morning-dialog .cth-morning-form-body{
  flex:0 1 auto;
  min-height:0;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  touch-action:pan-y;
  -webkit-overflow-scrolling:touch;
}
.cth-morning-dialog .cth-select-trigger::before,
.cth-morning-dialog .cth-select-control::before{display:none!important}
.cth-community-page__header h1{margin-top:0}
.cth-community-search input::-webkit-search-cancel-button{
  opacity:1;
  transform:scale(1.35);
  transform-origin:center;
  cursor:pointer;
}
.cth-au.is-unavailable .aud{opacity:.48}
.cth-au.is-unavailable .play,
.cth-au.is-unavailable .aud-rate{cursor:default}
.cth-au-state{
  float:right;
  margin-left:.75rem;
  color:var(--cth-muted);
  font-family:"Noto Sans SC","Source Han Sans SC",sans-serif;
  font-size:.78em;
  font-weight:500;
}

/* 2026-08-06: content-first home and morning setup, inspired by premium reading apps. */
.cth-index {
  --cth-home-canvas: #f1f6f4;
  --cth-home-paper: #fcfdfc;
  --cth-home-ink: #17302d;
  --cth-home-muted: #68807c;
  --cth-home-line: rgba(35, 83, 77, .11);
  --cth-home-soft: #f2f6f5;
  --cth-home-warm: #faf6eb;
  background:
    radial-gradient(circle at 78% 6%, rgba(243, 226, 183, .22), transparent 31rem),
    linear-gradient(180deg, #f4f8f6 0, var(--cth-home-canvas) 36rem);
  color: var(--cth-home-ink);
}

.cth-index .ls-wrap {
  width: min(calc(100% - 32px), 1040px);
  max-width: 1040px;
  padding-top: clamp(20px, 3.2vw, 34px);
  padding-bottom: calc(7rem + env(safe-area-inset-bottom));
}

.cth-index .booklet-search {
  min-height: 58px;
  border: 1px solid rgba(34, 80, 74, .12);
  border-radius: 18px;
  background: rgba(252, 253, 252, .92);
  box-shadow: 0 10px 30px rgba(27, 68, 63, .055);
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.cth-index .booklet-search:focus-within {
  border-color: rgba(23, 109, 104, .42);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(23, 109, 104, .07), 0 14px 34px rgba(27, 68, 63, .07);
}

.cth-index .booklet-search input {
  color: var(--cth-home-ink);
  font-size: 1rem;
}

.cth-index .booklet-search input::placeholder {
  color: #78908c;
  opacity: 1;
}

.cth-index .cth-dashboard {
  min-height: 0;
  margin-top: 28px;
  padding: clamp(26px, 4vw, 42px);
  border: 1px solid rgba(34, 80, 74, .1);
  border-radius: 26px;
  background:
    radial-gradient(circle at 94% 8%, rgba(243, 226, 183, .34), transparent 34%),
    linear-gradient(145deg, rgba(255, 255, 255, .98), rgba(249, 252, 250, .96));
  box-shadow: 0 18px 52px rgba(29, 69, 64, .075);
}

.cth-index .cth-dashboard-kicker {
  margin-bottom: 7px;
  color: #26766e;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .11em;
}

.cth-index .cth-dashboard-title {
  max-width: 18em;
  color: var(--cth-home-ink);
  font-family: var(--cth-sans);
  font-size: clamp(1.55rem, 3vw, 2rem);
  font-weight: 680;
  line-height: 1.28;
  letter-spacing: -.025em;
  text-wrap: balance;
}

.cth-index .cth-dashboard-date {
  margin-top: .55rem;
  color: var(--cth-home-muted);
  font-size: .84rem;
  font-weight: 500;
  letter-spacing: .02em;
}

.cth-index .cth-mine-summary {
  margin-top: clamp(24px, 4vw, 36px);
  gap: 24px;
}

.cth-index .cth-dashboard-locality {
  color: var(--cth-home-ink);
  font-family: var(--cth-sans);
  font-size: 1.14rem;
  font-weight: 650;
}

.cth-index .cth-dashboard-progress {
  margin-top: .42rem;
  color: #16815F;
  font-size: .95rem;
  font-weight: 680;
}

.cth-index .cth-today-state {
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  margin-top: .65rem;
  color: #B44938;
  font-size: .84rem;
  font-weight: 650;
}

.cth-index .cth-today-state::before {
  content: "×";
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #FFF0ED;
  color: #B44938;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
}

.cth-index .cth-today-state.is-complete {
  color: #16815F;
}

.cth-index .cth-today-state.is-complete::before {
  content: "✓";
  background: #16815F;
  color: #FFFFFF;
}

.cth-index .cth-mine-summary .cth-dashboard-action,
.cth-index .cth-mine-footer .cth-today-action {
  min-height: 44px;
  padding: .68rem 1.15rem;
  border: 0;
  border-radius: 999px;
  background: #176d68 !important;
  box-shadow: 0 10px 24px rgba(23, 109, 104, .17);
  color: #fff !important;
  font-size: .92rem;
  font-weight: 620;
  transition: background-color .2s ease, box-shadow .2s ease, transform .18s ease;
}

.cth-index .cth-mine-summary .cth-dashboard-action:hover,
.cth-index .cth-mine-footer .cth-today-action:hover {
  background: #115e59 !important;
  box-shadow: 0 13px 28px rgba(23, 109, 104, .21);
  transform: translateY(-1px);
}

.cth-index .cth-mine-summary .cth-dashboard-action:active,
.cth-index .cth-mine-footer .cth-today-action:active {
  box-shadow: 0 6px 16px rgba(23, 109, 104, .15);
  transform: translateY(0) scale(.985);
}

.cth-index .cth-dashboard-settings {
  top: 1.35rem;
  right: 1.35rem;
  width: 44px;
  height: 44px;
  margin: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
  color: #426a65;
  transition: color .18s ease, background-color .18s ease, transform .18s ease;
}

.cth-index .cth-dashboard-settings:hover {
  background: rgba(23, 109, 104, .065);
  color: #176d68;
}

.cth-index .cth-dashboard-settings:active {
  transform: scale(.94);
}

.cth-index .cth-dashboard-settings svg {
  width: 20px;
  height: 20px;
  stroke-width: 1.65;
}

/* The personal progress days are reading links, with completion shown separately. */
.cth-index .cth-mine .cth-week-grid {
  grid-template-columns: repeat(6, minmax(44px, 1fr));
  gap: 5px;
  margin-top: 28px;
  padding-top: 4px;
}

.cth-index .cth-mine a.cth-week-day {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 76px;
  padding: 8px 2px;
  box-sizing: border-box;
  border: 1px solid #cfd9d0;
  border-radius: 9px;
  background: #f2f6f1;
  color: #446353;
  box-shadow: none;
  text-decoration: none;
  transition: background-color .15s ease, border-color .15s ease;
}

.cth-index .cth-mine a.cth-week-day.is-current {
  border: 2px solid #176d68;
  background: #e6f0ed;
}

.cth-index .cth-mine a.cth-week-day.is-current .cth-week-label {
  color: #176d68;
  font-weight: 700;
}

.cth-index .cth-mine a.cth-week-day .cth-week-action {
  margin-top: 3px;
  color: #176d68;
  font-size: 11px;
  line-height: 1.4;
  white-space: nowrap;
}

.cth-index .cth-mine a.cth-week-day .cth-week-state {
  display: block;
  width: auto;
  height: auto;
  margin: 4px 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #607b77;
  font-size: 10px;
  line-height: 1.4;
  white-space: nowrap;
}

.cth-index .cth-mine a.cth-week-day .cth-week-state::before,
.cth-index .cth-mine a.cth-week-day .cth-week-state::after {
  content: none;
}

.cth-index .cth-mine a.cth-week-day.is-complete .cth-week-state {
  color: #176d68;
  font-weight: 650;
}

.cth-index .cth-mine a.cth-week-day.is-complete .cth-week-state::before {
  content: "✓ ";
}

.cth-index .cth-mine a.cth-week-day:focus-visible {
  outline: 2px solid #176d68;
  outline-offset: 3px;
}

@media (hover: hover) {
  .cth-index .cth-mine a.cth-week-day:hover {
    border-color: #176d68;
    background: #e6f0ed;
  }
}

.cth-index .cth-mine a.cth-week-day:active {
  border-color: #176d68;
  background: #d7e8e1;
}

@media (max-width: 359px) {
  .cth-index .cth-mine .cth-week-grid {
    grid-template-columns: repeat(3, minmax(44px, 1fr));
  }
}

.cth-index .booklet-section {
  margin-top: clamp(42px, 6vw, 68px);
}

.cth-index .cth-community-heading {
  gap: 24px;
}

.cth-index .cth-community-heading > p {
  color: var(--cth-home-muted);
  font-size: .79rem;
  line-height: 1.6;
}

.cth-index .cth-community-list,
.cth-index .cth-ranking-list {
  min-height: 158px;
  border: 1px solid var(--cth-home-line);
  border-radius: 22px;
  background: rgba(252, 253, 252, .9);
  box-shadow: 0 12px 36px rgba(29, 69, 64, .055);
}

.cth-index .cth-community-row,
.cth-index .cth-ranking-row {
  min-height: 72px;
  padding: 14px 20px;
}

.cth-index .cth-community-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "name count"
    "position count";
  column-gap: 16px;
  row-gap: 4px;
  align-items: center;
}

.cth-index .cth-community-row > .cth-community-name {
  grid-area: name;
}

.cth-index .cth-community-row > .cth-community-position {
  grid-area: position;
}

.cth-index .cth-community-row > .cth-community-count {
  grid-area: count;
  align-self: center;
  justify-self: end;
}

.cth-index .cth-community-more-link {
  min-height: 44px;
  margin-top: .7rem;
  padding: .65rem .15rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #176d68;
  font-size: .9rem;
  font-weight: 540;
  transition: color .18s ease, transform .18s ease;
}

.cth-index .cth-community-more-link:hover {
  color: #0e5853;
  transform: translateX(2px);
}

.cth-index .ixy {
  overflow: hidden;
  border-color: var(--cth-home-line);
  border-radius: 18px;
  background: rgba(252, 253, 252, .9);
  box-shadow: 0 8px 26px rgba(29, 69, 64, .045);
}

.cth-index .ixy-hd {
  min-height: 62px;
  padding-inline: 20px;
}

/* Morning setup: a quiet, progressive settings surface. */
.cth-morning-dialog,
.cth-morning-dialog[open] {
  position: fixed;
  top: 50%;
  left: 50%;
  width: min(520px, calc(100vw - 48px));
  max-width: min(520px, calc(100vw - 48px));
  max-height: min(82dvh, 680px);
  margin: 0;
  border: 1px solid rgba(28, 91, 84, .14);
  border-radius: 22px;
  background: #FBFDFB;
  box-shadow: 0 18px 48px rgba(24, 59, 55, .16);
  transform: translate(-50%, -50%);
}

.cth-morning-dialog::backdrop {
  background: rgba(17, 38, 35, .42);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.cth-morning-dialog .cth-morning-form {
  display: flex !important;
  max-height: min(82dvh, 680px);
  flex-direction: column;
  overflow: hidden;
}

.cth-morning-dialog .cth-morning-form-heading {
  flex: 0 0 auto;
  padding: 20px 24px 12px;
  border: 0;
  background: #FBFDFB;
}

.cth-morning-dialog .cth-morning-form-heading h2 {
  color: #183B37;
  font-family: var(--cth-sans);
  font-size: 1.28rem;
  font-weight: 720;
  letter-spacing: -.02em;
}

.cth-morning-dialog .cth-dashboard-kicker {
  margin: 0 0 5px;
  color: #2468B4;
  font-size: 15px;
  font-weight: 750;
  letter-spacing: .05em;
}

.cth-morning-dialog .cth-morning-form-body {
  min-height: 0;
  flex: 1 1 auto;
  padding: 8px 24px 18px;
  overflow-x: visible;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  scrollbar-width: none;
  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;
}

.cth-morning-dialog .cth-morning-form-body::-webkit-scrollbar {
  display: none;
}

.cth-morning-dialog .cth-morning-columns {
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
}

.cth-morning-dialog .cth-morning-section-title {
  margin: 2px 0 18px;
  padding-left: 10px;
  border-left: 3px solid #C7912E;
  color: #9A6815;
  font-size: 18px;
  font-weight: 750;
  letter-spacing: .02em;
  line-height: 1.35;
}

.cth-morning-dialog .cth-morning-section-title::before {
  content: none;
}

.cth-morning-dialog .cth-form-field,
.cth-morning-dialog .cth-morning-field,
.cth-morning-dialog .cth-locality-picker-field {
  gap: 8px;
  color: #405F5A;
  font-size: 15px;
  font-weight: 680;
}

.cth-morning-dialog .cth-select-trigger {
  min-height: 50px;
  padding: 9px 44px 9px 15px;
  border: 1px solid #C8D8D3;
  border-radius: 14px;
  background: #F7FAF8;
  box-shadow: none;
  color: #183B37;
  font-size: .9rem;
  font-weight: 620;
  transition: border-color .18s ease, background-color .18s ease;
}

.cth-morning-dialog .cth-select-trigger:hover:not(:disabled) {
  background: #F8FBF9;
}

.cth-morning-dialog .cth-select-trigger:focus-visible,
.cth-morning-dialog .cth-select-trigger[aria-expanded="true"] {
  border-color: #1C5B54;
  background: #FFFFFF;
  box-shadow: 0 0 0 3px rgba(28, 91, 84, .12);
  outline: 0;
}

.cth-morning-dialog .cth-select-trigger:disabled {
  color: #9aaba8;
  cursor: default;
}

.cth-morning-dialog .cth-select-panel:not([hidden]) {
  border-color: rgba(31, 77, 71, .12);
  border-radius: 16px;
  background: rgba(252, 253, 252, .98);
  box-shadow: 0 12px 32px rgba(18, 59, 54, .12);
}

.cth-morning-dialog .cth-select-option {
  position: relative;
  min-height: 48px;
  padding-left: 24px;
  border-radius: 11px;
  transition: background-color .16s ease, color .16s ease;
}

.cth-morning-dialog .cth-select-option:hover,
.cth-morning-dialog .cth-select-option[aria-selected="true"] {
  background: #DDEBE7;
  color: #183B37;
}

.cth-morning-dialog .cth-select-option[aria-selected="true"]::before {
  display: none;
  content: none;
}

.cth-morning-dialog .cth-locality-request-entry {
  display: inline-flex;
  width: auto;
  max-width: 100%;
  min-height: 44px;
  align-items: center;
  justify-content: flex-start;
  margin-top: 4px;
  padding: 8px 2px;
  border: 0;
  background: transparent;
  color: #2468B4;
  font: inherit;
  font-size: .82rem;
  font-weight: 700;
  text-align: left;
  white-space: nowrap;
}

.cth-morning-dialog .cth-locality-request-entry::after {
  content: '›';
  flex: 0 0 auto;
  margin-left: 8px;
  font-size: 1.35rem;
  font-weight: 400;
  line-height: 1;
  transition: transform .18s ease;
}

.cth-locality-request-screen[hidden] {
  display: none !important;
}

.cth-locality-request-screen {
  position: fixed;
  top: var(--cth-request-top, calc(50% - 32px));
  left: 50%;
  z-index: 2147483300;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  width: min(calc(100% - 20px), 520px);
  max-width: 520px;
  height: min(90dvh, 780px);
  max-height: min(90dvh, 780px);
  margin: 0;
  transform: translate(-50%, -50%);
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(24, 59, 55, .12);
  border-radius: 22px;
  background: #FBFDFB;
  box-shadow: 0 18px 52px rgba(17, 38, 35, .22);
  color: #183B37;
}

.cth-locality-request-screen::backdrop {
  background: rgba(17, 38, 35, .42);
}

.cth-locality-request-head {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) 64px;
  align-items: center;
  min-height: 56px;
  padding: 6px 16px;
  border-bottom: 1px solid #E2EAE7;
  background: #FBFDFB;
  position: relative;
  z-index: 3;
}

.cth-locality-request-close {
  min-width: 56px;
  min-height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #2468B4;
  font: inherit;
  font-size: .92rem;
  font-weight: 700;
  text-align: left;
}

.cth-locality-request-kicker,
.cth-locality-request-context,
.cth-locality-request-status {
  margin: 0;
}

.cth-locality-request-kicker {
  color: #123B36;
  font-size: 1rem;
  font-weight: 750;
  text-align: center;
}

.cth-locality-request-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  min-height: 0;
  gap: 15px;
  padding: 18px 20px 16px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
}

.cth-locality-request-context,
.cth-locality-request-status {
  color: #5D7672;
  font-size: .84rem;
  line-height: 1.55;
}

.cth-locality-request-context {
  padding: 0 2px 2px;
}

.cth-locality-request-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  padding: 4px;
  border-radius: 12px;
  background: #EAF0EE;
}

.cth-locality-request-tabs button {
  min-height: 42px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #58716D;
  font: inherit;
  font-weight: 700;
}

.cth-locality-request-tabs button[aria-pressed="true"] {
  background: #FFFFFF;
  color: #183B37;
  box-shadow: 0 1px 5px rgba(17, 38, 35, .1);
}

.cth-locality-request-china,
.cth-locality-request-overseas {
  display: grid;
  gap: 15px;
}

.cth-locality-request-china[hidden],
.cth-locality-request-overseas[hidden] {
  display: none !important;
}

.cth-locality-request-body label {
  display: grid;
  gap: 7px;
  color: #405F5A;
  font-size: .84rem;
  font-weight: 650;
}

.cth-locality-request-body input,
.cth-locality-request-body select {
  width: 100%;
  min-height: 52px;
  padding: 9px 13px;
  border: 1px solid #BFCFCB;
  border-radius: 12px;
  outline: 0;
  background: #FFFFFF;
  color: #183B37;
  font-size: 1rem;
}

.cth-locality-request-body input:focus,
.cth-locality-request-body select:focus,
.cth-locality-request-screen .cth-select-trigger:focus-visible,
.cth-locality-request-screen .cth-select-search:focus-visible {
  border-color: #2468B4;
  outline: none !important;
  box-shadow: none !important;
}

.cth-locality-request-footer {
  display: grid;
  gap: 7px;
  padding: 12px 20px 18px;
  border-top: 1px solid #E2EAE7;
  background: #FBFDFB;
  position: relative;
  z-index: 3;
}

.cth-locality-request-screen .cth-select-trigger {
  min-height: 54px;
  border: 1px solid #BFCFCB;
  border-radius: 14px;
  background: #FFFFFF;
}

.cth-locality-request-screen .cth-select-trigger::before {
  content: none;
}

.cth-locality-request-screen .cth-select-panel:not([hidden]) {
  position: relative;
  inset: auto;
  max-height: min(320px, 42dvh);
  margin-top: 8px;
  overflow: hidden;
}

.cth-locality-request-screen .cth-select-list {
  max-height: min(250px, 32dvh);
}

.cth-locality-request-screen .cth-select-option {
  min-height: 48px;
}

.cth-locality-retry,
.cth-locality-request-retry {
  min-height: 44px;
  margin-top: 8px;
  border: 1px solid #2468B4;
  border-radius: 12px;
  background: transparent;
  color: #2468B4;
}

.cth-locality-retry[hidden],
.cth-locality-request-retry[hidden] {
  display: none !important;
}

.cth-locality-request-status:empty {
  display: none;
}

.cth-locality-request-submit {
  min-height: 48px;
  padding: 10px 18px;
  border: 0;
  border-radius: 13px;
  background: #2468B4;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF;
  font: inherit;
  font-size: .96rem;
  font-weight: 700;
}

.cth-locality-request-submit:disabled {
  cursor: default;
  opacity: .56;
}

html.cth-locality-request-open,
html.cth-locality-request-open body {
  overflow: hidden;
}

html.cth-locality-request-open .cth-morning-dialog .cth-morning-form-actions {
  visibility: hidden;
  pointer-events: none;
}

.cth-morning-dialog .cth-morning-form-actions {
  position: sticky;
  z-index: 2;
  bottom: 0;
  flex: 0 0 auto;
  padding: 10px 24px 18px;
  border-top: 1px solid #E7ECEA;
  background: #FBFDFB;
}

.cth-morning-dialog .cth-form-status {
  margin: 0 auto 0 0;
}

.cth-morning-dialog #cthMorningClose {
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
  color: #496560;
  font-size: 1.6rem;
  font-weight: 350;
  transition: background-color .18s ease, color .18s ease;
}

.cth-morning-dialog #cthMorningClose:hover {
  background: #f0f4f3;
  color: #17302d;
}

.cth-morning-dialog #cthMorningClose:active {
  background: #e8efed;
}

.cth-morning-dialog .cth-form-submit {
  width: auto;
  min-height: 48px;
  margin-left: auto;
  padding: .65rem 1.2rem;
  border: 0;
  border-radius: 14px;
  background: #1C5B54 !important;
  box-shadow: none;
  color: #FFFFFF !important;
  font-size: .92rem;
  font-weight: 620;
  transition: background-color .18s ease;
}

.cth-morning-dialog .cth-form-submit:hover {
  background: #154B46 !important;
  color: #FFFFFF !important;
}

.cth-morning-dialog .cth-form-submit:active {
  background: #123F3A !important;
}

@media (min-width: 900px) {
  .cth-index .booklet-search {
    width: min(100%, 820px);
    margin-inline: auto;
  }

  .cth-index .cth-mine {
    padding: 40px 44px 32px;
  }

  .cth-index .cth-mine-summary-copy {
    min-width: 260px;
  }

  .cth-index .cth-week-grid {
    max-width: 760px;
  }
}

@media (max-width: 720px) {
  .cth-index .ls-wrap {
    width: calc(100% - 24px);
    padding-top: 18px;
    padding-bottom: calc(7.2rem + env(safe-area-inset-bottom));
  }

  .cth-index .booklet-search {
    min-height: 56px;
    border-radius: 18px;
  }

  .cth-index .booklet-search input {
    font-size: .93rem;
  }

  .cth-index .cth-dashboard {
    margin-top: 24px;
    padding: 24px 22px 22px;
    border-radius: 24px;
    box-shadow: 0 14px 38px rgba(29, 69, 64, .065);
  }

  .cth-index .cth-mine .cth-dashboard-heading {
    padding-right: 2.6rem;
  }

  .cth-index .cth-dashboard-title {
    font-size: clamp(1.46rem, 6.4vw, 1.72rem);
    line-height: 1.3;
  }

  .cth-index .cth-dashboard-settings {
    top: .95rem;
    right: .8rem;
  }

  .cth-index .cth-mine-summary {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 12px;
    margin-top: 25px;
  }

  .cth-index .cth-mine-summary .cth-dashboard-action {
    min-height: 42px;
    padding: .62rem .95rem;
    font-size: .86rem;
  }

  .cth-index .cth-week-grid {
    margin-top: 24px;
  }

  .cth-index .cth-week-day,
  .cth-index .cth-week-day.is-current,
  .cth-index .cth-week-day.is-complete {
    min-height: 48px;
  }

  .cth-index .booklet-section {
    margin-top: 46px;
  }

  .cth-index .cth-community-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .cth-index .cth-community-heading > p {
    max-width: none;
    text-align: left;
  }

  .cth-index .cth-community-row,
  .cth-index .cth-ranking-row {
    padding-inline: 16px;
  }

  .cth-morning-dialog,
  .cth-morning-dialog[open] {
    top: 50%;
    right: auto;
    bottom: auto;
    left: 50%;
    width: calc(100% - 20px);
    max-width: 560px;
    height: min(92dvh, 860px);
    max-height: min(92dvh, 860px);
    border: 1px solid rgba(28, 91, 84, .14);
    border-radius: 26px;
    box-shadow: 0 18px 48px rgba(24, 59, 55, .18);
    transform: translate(-50%, -50%);
  }

  .cth-morning-dialog .cth-morning-form {
    height: 100%;
    max-height: none;
  }

  .cth-morning-dialog .cth-morning-form-heading {
    padding: 16px 20px 10px;
  }

  .cth-morning-dialog .cth-morning-form-heading h2 {
    font-size: 1.24rem;
  }

  .cth-morning-dialog .cth-morning-form-body {
    min-height: 0;
    padding: 8px 20px 16px;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .cth-morning-dialog .cth-morning-columns {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .cth-morning-dialog .cth-select-trigger {
    min-height: 50px;
    border-radius: 14px;
  }

  .cth-morning-dialog .cth-morning-form-actions {
    padding: 10px 20px 18px;
  }

  .cth-morning-dialog .cth-select-panel:not([hidden]) {
    display: flex;
    flex-direction: column;
    max-height: min(16rem, 34dvh);
  }

  .cth-morning-dialog .cth-select-panel:not([hidden]) .cth-select-list {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
  }

  .cth-morning-dialog .cth-form-submit {
    width: 100%;
    margin-left: 0;
  }
}

@media (max-width: 380px) {
  .cth-index .cth-mine-summary {
    grid-template-columns: minmax(0, 1fr);
  }

  .cth-index .cth-mine-summary .cth-dashboard-action {
    justify-self: start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cth-morning-dialog,
  .cth-morning-dialog::backdrop,
  .cth-morning-dialog .cth-select-panel,
  .cth-index .cth-dashboard-action,
  .cth-index .cth-dashboard-settings {
    animation: none !important;
    transition: none !important;
  }
}
/* Keep every conference and message cover on the same top baseline.
   Mobile title length must not vertically recenter the cover. */
@media (max-width: 760px) {
    body.cth-conf .booklet-hero.cf-hero,
    body.cth-week .booklet-week-hero {
        align-items: start;
    }

    body.cth-conf .booklet-cover-lg,
    body.cth-week .booklet-cover-week {
        align-self: start;
        margin-top: 0;
    }
}

/* Sunday speaking and verse resources: quiet, content-first, no glow effects. */
.cth-sheet-open { overflow: hidden; }
.cth-av-scrim { position: fixed; inset: 0; z-index: 10060; display: flex; align-items: center; justify-content: center; padding: max(22px,env(safe-area-inset-top)) 18px max(160px,calc(env(safe-area-inset-bottom) + 144px)); background: rgba(17,35,33,.42); }
.cth-av-scrim[hidden] { display: none; }
.cth-av-sheet { position: relative; width: min(720px,100%); max-height: min(72dvh,680px); display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgba(22,101,93,.16); border-radius: 28px; background: #fbfdfc; color: #102c29; }
.cth-av-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 24px 26px 18px; border-bottom: 1px solid rgba(22,101,93,.11); }
.cth-av-head p,.sy-compose-kicker { margin: 0 0 4px; color: #177b70; font-size: 13px; font-weight: 700; letter-spacing: .08em; }
.cth-av-head h2 { margin: 0; font-size: 24px; line-height: 1.25; }
.cth-av-close { width: 40px; height: 40px; padding: 0; border: 0; background: transparent; color: #486965; font: 300 34px/1 sans-serif; cursor: pointer; }
.cth-av-body { overflow: auto; overscroll-behavior: contain; padding: 10px 26px 30px; }
.cth-av-loading,.cth-av-empty { margin: 48px 0; color: #718682; text-align: center; }
.cth-av-day { padding: 16px 0 6px; }
.cth-av-day h3 { margin: 0 0 10px; color: #5f7874; font-size: 14px; font-weight: 700; }
.cth-av-row { width: 100%; display: grid; grid-template-columns: minmax(92px,auto) 1fr auto; align-items: start; gap: 14px; padding: 16px 4px; border: 0; border-bottom: 1px solid rgba(22,101,93,.1); background: transparent; color: inherit; text-align: left; cursor: pointer; }
.cth-av-row b { color: #126f65; font-size: 15px; }
.cth-av-row span { color: #334f4b; font-size: 15px; line-height: 1.65; }
.cth-av-row i { color: #86a09c; font: 300 25px/1 sans-serif; }
.cth-av-detail { position: absolute; inset: 0; z-index: 2; overflow: auto; padding: 24px 28px 40px; background: #fbfdfc; }
.cth-av-detail[hidden] { display: none; }
.cth-av-back { padding: 0; border: 0; background: transparent; color: #177b70; font-size: 15px; }
.cth-av-detail h3 { margin: 38px 0 16px; font-size: 23px; }
.cth-av-detail p { margin: 0; color: #243f3b; font-size: 20px; line-height: 1.9; }
.sy-source-foot { display: flex; align-items: center; justify-content: flex-end; gap: 22px; padding: 15px 26px calc(15px + env(safe-area-inset-bottom)); border-top: 1px solid rgba(22,101,93,.11); background: #fbfdfc; }
.sy-source-foot button { border: 0; background: transparent; color: #177b70; font-size: 16px; font-weight: 650; }
.sy-source-apply { padding: 10px 0 !important; }
.sy-source-row { display: grid; grid-template-columns: 24px 1fr; gap: 12px; align-items: start; padding: 15px 2px; border-bottom: 1px solid rgba(22,101,93,.1); cursor: pointer; }
.sy-source-row input { position: absolute; opacity: 0; pointer-events: none; }
.sy-source-check { width: 20px; height: 20px; margin-top: 2px; border: 1.5px solid #91aaa6; border-radius: 50%; }
.sy-source-row input:checked + .sy-source-check { border: 6px solid #177b70; }
.sy-source-row b,.sy-source-row em { display: block; font-style: normal; }
.sy-source-row b { margin-bottom: 4px; color: #126f65; font-size: 14px; }
.sy-source-row em { color: #334f4b; font-size: 15px; line-height: 1.65; }
.sy-compose-actions { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-top: 22px; }
.sy-compose-note { max-width: 440px; color: #748985; font-size: 14px; line-height: 1.55; }
.sy-compose-generate,.sy-compose-preview-actions button { padding: 10px 0; border: 0; background: transparent; color: #177b70; font-size: 16px; font-weight: 700; cursor: pointer; }
.sy-compose-preview { margin-top: 20px; padding: 30px; border: 1px solid rgba(22,101,93,.14); border-radius: 22px; background: #f8fbfa; }
.sy-compose-preview[hidden] { display: none; }
.sy-compose-preview h2 { margin: 0 0 24px; font-size: clamp(22px,3vw,30px); }
.sy-compose-copy { white-space: pre-wrap; color: #183733; font-size: clamp(17px,2vw,20px); line-height: 1.9; }
.sy-compose-preview-actions { display: flex; justify-content: flex-end; gap: 26px; margin-top: 28px; }
.sd-psrp-checking { visibility: hidden; }
.sd-psrp-ready { border: 1px solid rgba(22,101,93,.17); border-radius: 20px; background: #fff; }
.sd-psrp-ready > a { display: grid; grid-template-columns: 1fr auto; gap: 8px 20px; padding: 22px 24px; text-decoration: none; }
.sd-psrp-ready > a::after { content: '›'; grid-column: 2; grid-row: 1 / span 2; align-self: center; color: #64817d; font-size: 28px; }
body.cth-sunday .sd-t { font-size: clamp(25px,3.3vw,36px) !important; line-height: 1.24 !important; }

@media (max-width: 640px) {
  .cth-av-scrim { padding: max(18px,env(safe-area-inset-top)) 10px max(160px,calc(env(safe-area-inset-bottom) + 144px)); }
  .cth-av-sheet { max-height: min(72dvh,calc(100dvh - 160px)); border-radius: 24px; }
  .cth-av-head { padding: 20px 20px 15px; }
  .cth-av-head h2 { font-size: 21px; }
  .cth-av-body { padding: 8px 20px 25px; }
  .cth-av-row { grid-template-columns: 76px 1fr auto; gap: 10px; padding: 14px 2px; }
  .cth-av-row span { font-size: 14px; }
  .sy-compose-actions { align-items: flex-end; }
  .sy-compose-note { max-width: 64%; font-size: 13px; }
  .sy-compose-preview { padding: 23px 20px; border-radius: 20px; }
  .sy-compose-preview-actions { justify-content: space-between; }
  body.cth-sunday .sd-t { font-size: 26px !important; }
}


/* 2026-08-08: stable morning dashboard and cohesive Sunday reading experience */
#cthMine .cth-dashboard-loading {
  visibility: hidden;
  min-height: 32rem;
}
#cthMine,
#cthMine * {
  animation: none !important;
}
#cthMine .cth-dashboard-action,
#cthMine .cth-dashboard-action::before,
#cthMine .cth-dashboard-action::after,
#cthMine button,
#cthMine a {
  filter: none !important;
  text-shadow: none !important;
}
#cthMine .cth-dashboard-action,
#cthMine .cth-dashboard-primary {
  box-shadow: none !important;
}

/* 2026-08-09: Sunday prophecy follows the weekday paper-reading system. */
body.cth-sunday {
  --sy-canvas: #f5f3ed;
  --sy-paper: #fffdfa;
  --sy-ink: var(--ink, #1b2626);
  --sy-muted: var(--soft, #5c6f6f);
  --sy-accent: var(--cth-brand, #176d68);
  --sy-line: color-mix(in srgb, var(--sy-ink) 12%, transparent);
  --sy-field: color-mix(in srgb, var(--sy-paper) 76%, transparent);
  color: var(--sy-ink);
  background: var(--sy-canvas);
}

html[data-sv-theme="sepia"] body.cth-sunday,
html[data-sv-theme="green"] body.cth-sunday,
html[data-sv-theme="night"] body.cth-sunday {
  --sy-canvas: var(--bg);
  --sy-paper: var(--paper);
  --sy-ink: var(--ink);
  --sy-muted: var(--soft);
  --sy-line: var(--line);
  --sy-field: color-mix(in srgb, var(--paper) 76%, transparent);
}

body.cth-sunday .ls-wrap {
  width: min(calc(100% - 48px), 760px) !important;
  max-width: 760px !important;
  margin: 0 auto !important;
  padding: 34px 0 calc(var(--bottom-nav-h, 84px) + 40px) !important;
}

body.cth-sunday .sd-hero {
  margin: 0 0 34px;
  padding: 0;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent;
}

body.cth-sunday .sd-eyebrow {
  display: none;
}

body.cth-sunday .sd-t {
  max-width: 22em;
  margin: 0;
  color: var(--sy-ink);
  font-family: var(--cth-serif, "Noto Serif SC", "Songti SC", STSong, serif);
  font-size: 26px !important;
  font-weight: 700;
  line-height: 1.42 !important;
  letter-spacing: 0;
}

body.cth-sunday .sd-note {
  max-width: 42em;
  margin: 13px 0 0;
  color: var(--sy-muted);
  font-size: 14px;
  line-height: 1.75;
}

body.cth-sunday .sd-hero::before,
body.cth-sunday .sd-hero::after,
body.cth-sunday .sd-eyebrow::before,
body.cth-sunday .sd-eyebrow::after,
body.cth-sunday .sd-t::before,
body.cth-sunday .sd-t::after,
body.cth-sunday .sd-h::before,
body.cth-sunday .sd-h::after,
body.cth-sunday .sd-vs::before,
body.cth-sunday .sd-vs::after,
body.cth-sunday .sd-vs p::before,
body.cth-sunday .sd-vs p::after {
  display: none !important;
  content: none !important;
}

body.cth-sunday .sd-sec {
  width: 100%;
  margin: 0 0 28px;
}

body.cth-sunday .sd-sec.booklet-group {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.cth-sunday .sd-h {
  margin: 0 0 7px;
  color: var(--sy-ink);
  font-family: inherit;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.45;
}

body.cth-sunday .sd-sub {
  margin: 0 0 24px;
  color: var(--sy-muted);
  font-size: 14px;
  line-height: 1.7;
}

body.cth-sunday .sy-f {
  margin: 0 0 22px;
  padding: 0;
  border: 0;
}

body.cth-sunday .sy-lb {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 8px 16px;
  width: 100%;
  min-height: 44px;
  margin: 0 0 7px;
  writing-mode: horizontal-tb !important;
}

body.cth-sunday .sy-lb span,
body.cth-sunday .sy-lb i {
  display: inline !important;
  width: auto !important;
  writing-mode: horizontal-tb !important;
}

body.cth-sunday .sy-lb span {
  color: var(--sy-ink);
  font-size: 16px;
  font-weight: 600;
}

body.cth-sunday .sy-lb i {
  margin-right: 10px;
  color: var(--sy-accent);
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
}

body.cth-sunday .sy-lb em {
  display: none !important;
}

body.cth-sunday .sy-fill {
  flex: 0 0 auto;
  min-width: 44px;
  min-height: 44px;
  margin: 0;
  padding: 8px 0 8px 12px;
  border: 0;
  border-radius: 0;
  color: var(--sy-accent);
  background: transparent;
  box-shadow: none;
  font: inherit;
  font-size: 14px;
  font-weight: 500;
}

body.cth-sunday .sy-f .sy-in {
  display: block;
  overflow: hidden;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 72px;
  margin: 0;
  padding: 13px 15px;
  border: 1px solid var(--sy-line);
  border-radius: 12px;
  outline: 0;
  color: var(--sy-ink);
  background: var(--sy-field);
  box-shadow: none;
  resize: none;
  writing-mode: horizontal-tb !important;
  white-space: pre-wrap !important;
  overflow-wrap: anywhere;
  font: inherit;
  font-size: 16px;
  line-height: 1.7;
  transition: border-color .16s ease, background-color .16s ease;
}

body.cth-sunday .sy-f .sy-in:focus {
  border-color: color-mix(in srgb, var(--sy-accent) 44%, transparent);
  background: color-mix(in srgb, var(--sy-paper) 94%, transparent);
}

body.cth-sunday .sy-f .sy-in::placeholder {
  color: color-mix(in srgb, var(--sy-ink) 48%, transparent);
  opacity: 1;
}

body.cth-sunday .sy-row {
  min-height: 20px;
}

body.cth-sunday .sd-saved {
  color: var(--sy-accent);
  font-size: 13px;
}

body.cth-sunday .sy-compose-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding-top: 2px;
}

body.cth-sunday .sy-editor[aria-busy="true"] :is(.sy-f,.sy-row,.sy-compose-actions) {
  display: none;
}

body.cth-sunday .sy-compose-restoring {
  min-height: 180px;
  display: grid;
  place-items: center;
  margin: 0;
  color: var(--sy-muted);
  font-size: 14px;
}

body.cth-sunday .sy-compose-note {
  max-width: 440px;
  color: var(--sy-muted);
  font-size: 13px;
  line-height: 1.55;
}

body.cth-sunday .sy-compose-actions .sy-compose-generate {
  min-height: 44px;
  padding: 9px 18px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: var(--sy-accent);
  box-shadow: none;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
}

body.cth-sunday .sy-compose-preview {
  margin-top: 22px;
  padding: 22px 20px;
  border: 1px solid var(--sy-line);
  border-radius: 14px;
  background: var(--sy-field);
  box-shadow: none;
}

body.cth-sunday .sy-compose-kicker {
  color: var(--sy-accent);
  font-size: 13px;
}

body.cth-sunday .sy-compose-copy {
  white-space: pre-wrap;
  color: var(--sy-ink);
  font-family: var(--cth-serif, "Noto Serif SC", "Songti SC", STSong, serif);
  font-size: 16px;
  line-height: 1.85;
}

body.cth-sunday .sy-compose-section { padding:18px 0; border-bottom:1px solid var(--sy-line); }
body.cth-sunday .sy-compose-section:last-child { border-bottom:0; }
body.cth-sunday .sy-compose-section h3 { margin:0 0 9px; color:var(--sy-accent); font-size:14px; font-weight:700; }
body.cth-sunday .sy-compose-section p { margin:0; white-space:pre-wrap; color:var(--sy-ink); font-size:16px; line-height:1.85; }

body.cth-sunday .sy-compose-preview-actions {
  display: flex;
  justify-content: flex-end;
  gap: 22px;
  margin-top: 22px;
}

body.cth-sunday .sy-compose-preview-actions button {
  min-height: 44px;
  padding: 8px 0;
  border: 0;
  color: var(--sy-accent);
  background: transparent;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
}

body.cth-sunday .sd-days {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 0;
}

body.cth-sunday .sd-days .sd-h {
  grid-column: 1 / -1;
  margin-bottom: 5px;
}

body.cth-sunday .sd-day {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 44px;
  margin: 0;
  padding: 8px 6px;
  border: 1px solid var(--sy-line);
  border-radius: 10px;
  color: var(--sy-ink);
  background: var(--sy-field);
  text-decoration: none;
}

body.cth-sunday .sd-days .sd-wd {
  min-width: 0;
  margin: 0;
  padding: 0;
  border-radius: 0;
  color: var(--sy-ink) !important;
  background: transparent !important;
  font-size: 14px !important;
  font-weight: 500 !important;
}

body.cth-sunday .sd-go {
  display: none;
}

body.cth-sunday .booklet-disclosure,
body.cth-sunday details.booklet-disclosure {
  overflow: hidden;
  margin: 0 0 10px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.cth-sunday .booklet-disclosure + .booklet-disclosure {
  margin-top: 0;
}

body.cth-sunday .booklet-disclosure .lrow,
body.cth-sunday .sd-fold-hd,
body.cth-sunday details.booklet-disclosure > summary {
  min-height: 52px;
  padding: 4px 0;
  color: var(--sy-ink);
  background: transparent;
  list-style: none;
  text-decoration: none;
  cursor: pointer;
  font-size: 17px;
  font-weight: 600;
}

body.cth-sunday details.booklet-disclosure > summary::-webkit-details-marker {
  display: none;
}

body.cth-sunday .lrow-s,
body.cth-sunday .sd-resource-meta {
  color: var(--sy-muted);
  font-size: 13px;
  font-weight: 400;
}

body.cth-sunday .sd-fold-bd,
body.cth-sunday .sd-resource-body {
  padding: 4px 0 20px;
  color: var(--sy-ink);
}

body.cth-sunday .sd-truth-group {
  padding: 14px 0;
  border: 0;
}

body.cth-sunday .sd-truth-group h3,
body.cth-sunday .sd-resource-body,
body.cth-sunday .sd-vs p,
body.cth-sunday .sy-demo p {
  color: var(--sy-ink);
  font-family: var(--cth-serif, "Noto Serif SC", "Songti SC", STSong, serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.85;
}

body.cth-sunday .sd-vs,
body.cth-sunday .sd-vs p,
body.cth-sunday .sd-vs p + p {
  border: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}

body.cth-sunday .sd-resource-fold:empty,
body.cth-sunday .sd-psrp-empty,
body.cth-sunday .sd-empty {
  display: none !important;
}

body.cth-sunday .sd-timer,
body.cth-sunday .sd-speak-timer,
body.cth-sunday .sy-timer,
body.cth-sunday .sd-countdown,
body.cth-sunday [data-sunday-timer] {
  display: none !important;
}

@media (max-width: 640px) {
  body.cth-sunday .ls-wrap {
    width: min(calc(100% - 48px), 760px) !important;
    padding-top: 26px !important;
  }

  body.cth-sunday .sd-hero {
    margin-bottom: 28px;
  }

  body.cth-sunday .sd-t {
    font-size: 21px !important;
    line-height: 1.46 !important;
  }

  body.cth-sunday .sd-h {
    font-size: 16px;
  }

  body.cth-sunday .sd-sub {
    margin-bottom: 20px;
    font-size: 13.5px;
  }

  body.cth-sunday .sy-f {
    margin-bottom: 18px;
  }

  body.cth-sunday .sy-compose-actions {
    align-items: flex-end;
  }

  body.cth-sunday .sy-compose-note {
    max-width: 58%;
  }

  body.cth-sunday .booklet-disclosure .lrow,
  body.cth-sunday .sd-fold-hd,
  body.cth-sunday details.booklet-disclosure > summary {
    font-size: 16px;
  }
}

@media (max-width: 380px) {
  body.cth-sunday .ls-wrap {
    width: min(calc(100% - 32px), 760px) !important;
  }

  body.cth-sunday .sy-compose-note {
    display: none;
  }

  body.cth-sunday .sy-compose-actions .sy-compose-generate {
    margin-left: auto;
  }
}

/* 2026-08-09: sentence-card picking must never paint the whole paragraph. */
body.sc-pick:not(.sc-pick-multi) .v,
body.sc-pick:not(.sc-pick-multi) .cn,
body.sc-pick:not(.sc-pick-multi) .np-vt,
body.sc-pick:not(.sc-pick-multi) .line,
body.sc-pick:not(.sc-pick-multi) .v:active,
body.sc-pick:not(.sc-pick-multi) .cn:active,
body.sc-pick:not(.sc-pick-multi) .np-vt:active,
body.sc-pick:not(.sc-pick-multi) .line:active {
  background: transparent !important;
  background-image: none !important;
  -webkit-tap-highlight-color: transparent !important;
  -webkit-user-select: none !important;
  user-select: none !important;
}

body.sc-pick:not(.sc-pick-multi) .v::selection,
body.sc-pick:not(.sc-pick-multi) .cn::selection,
body.sc-pick:not(.sc-pick-multi) .np-vt::selection,
body.sc-pick:not(.sc-pick-multi) .line::selection,
body.sc-pick:not(.sc-pick-multi) .v *::selection,
body.sc-pick:not(.sc-pick-multi) .cn *::selection,
body.sc-pick:not(.sc-pick-multi) .np-vt *::selection,
body.sc-pick:not(.sc-pick-multi) .line *::selection {
  color: inherit !important;
  background: transparent !important;
}

/* Sunday page: content hierarchy is typographic, not decorative. */
body.cth-sunday .sd-hero,
body.cth-sunday .sd-eyebrow,
body.cth-sunday .sd-t,
body.cth-sunday .sd-vs,
body.cth-sunday .sd-vs p,
body.cth-sunday .sd-vs p + p {
  border: 0 !important;
  border-left: 0 !important;
  border-top: 0 !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}

body.cth-sunday .sd-hero::before,
body.cth-sunday .sd-hero::after,
body.cth-sunday .sd-eyebrow::before,
body.cth-sunday .sd-eyebrow::after,
body.cth-sunday .sd-t::before,
body.cth-sunday .sd-t::after,
body.cth-sunday .sd-vs::before,
body.cth-sunday .sd-vs::after,
body.cth-sunday .sd-vs p::before,
body.cth-sunday .sd-vs p::after {
  content: none !important;
  display: none !important;
}

.cth-av-warning {
  margin: 10px 0 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(154,116,40,.1);
  color: #76581e;
  font-size: 13px;
  line-height: 1.6;
}

body.cth-content-read .cth-piece-res {
  display: grid;
  gap: 12px;
  margin: 16px auto 22px;
}

body.cth-content-read .cth-piece-reading {
  border: 1px solid var(--line, #dce5e2);
  border-radius: 16px;
  background: var(--paper, #fff);
  color: var(--ink, #1f2d2b);
}

body.cth-content-read .cth-piece-reading {
  padding: 13px 16px;
  font-size: 14px;
  line-height: 1.8;
  white-space: normal;
}

body.cth-content-read .cth-piece-reading a.bref {
  color: var(--cth-vsn, #2563EB) !important;
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
  font-weight: 650;
  margin-inline: .12em;
}

body.cth-mr #cthLg,
body.cth-content-read #cthLg {
  --cth-light-accent: var(--myc, #6f4f91);
  --cth-light-ink: var(--mytx, #563b78);
  --cth-light-line: color-mix(in srgb, var(--myc, #6f4f91) 24%, transparent);
  --lg-fs: calc(var(--fs, 17px) * 1.08);
  --lg-line: calc(var(--lg-fs) * 2.05);
  --lg-pad: 11px;
  width: min(100% - 32px, var(--cth-shell, 760px));
  max-width: none;
  margin: 48px auto 32px !important;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  color: var(--cth-light-ink);
  box-sizing: border-box;
}

body.cth-mr #cthLg .lg-hd,
body.cth-content-read #cthLg .lg-hd,
body.cth-mr #cthLg .lg-ft,
body.cth-content-read #cthLg .lg-ft {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

body.cth-mr #cthLg .lg-hd,
body.cth-content-read #cthLg .lg-hd {
  margin-bottom: 14px;
}

body.cth-mr #cthLg .lg-t,
body.cth-content-read #cthLg .lg-t {
  color: var(--cth-light-ink);
  font-size: 19px;
  font-weight: 750;
}

body.cth-mr #cthLg .lg-n,
body.cth-content-read #cthLg .lg-n,
body.cth-mr #cthLg .lg-tip,
body.cth-content-read #cthLg .lg-tip {
  color: var(--cth-light-ink);
  font-size: 12px;
}

body.cth-mr #cthLg .lg-n.near,
body.cth-content-read #cthLg .lg-n.near {
  color: var(--cth-light-accent);
  font-weight: 700;
}

body.cth-mr #cthLg .lg-in,
body.cth-content-read #cthLg .lg-in {
  display: block;
  width: 100%;
  min-height: calc(6 * var(--lg-line));
  margin: 0;
  padding: var(--lg-pad) 0 0;
  border: 0;
  border-radius: 0;
  outline: 0;
  resize: vertical;
  overflow: auto;
  background-color: transparent;
  background-image: repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--lg-line) - 1px), var(--cth-light-line) calc(var(--lg-line) - 1px), var(--cth-light-line) var(--lg-line));
  background-position: 0 var(--lg-pad);
  background-size: 100% var(--lg-line);
  background-repeat: repeat;
  background-attachment: local;
  color: var(--ink, #2a2622);
  font-family: var(--lr-cjk-body-font, "LR Source Han Sans", "Source Han Sans SC", "Noto Sans CJK SC", "PingFang SC", sans-serif);
  font-size: var(--lg-fs);
  font-weight: 400;
  line-height: var(--lg-line);
  box-sizing: border-box;
}

body.cth-mr #cthLg .lg-in:focus,
body.cth-content-read #cthLg .lg-in:focus {
  background-color: color-mix(in srgb, var(--mysoft, rgba(111, 79, 145, .11)) 45%, transparent);
}

body.cth-mr #cthLg.lg-ro .lg-in,
body.cth-content-read #cthLg.lg-ro .lg-in {
  resize: none;
  overflow: hidden;
}

body.cth-mr #cthLg.lg-ro .lg-in::placeholder,
body.cth-content-read #cthLg.lg-ro .lg-in::placeholder {
  color: transparent;
}

body.cth-mr #cthLg .lg-ft,
body.cth-content-read #cthLg .lg-ft {
  min-height: 40px;
  margin-top: 10px;
}

body.cth-mr #cthLg .lg-btn,
body.cth-content-read #cthLg .lg-btn {
  min-width: 112px;
  min-height: 44px;
  padding: 0 22px;
  border: 1px solid var(--cth-light-accent);
  border-radius: 14px;
  background: var(--cth-light-accent);
  color: #fff;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
}

body.cth-mr #cthLg .lg-btn:focus-visible,
body.cth-content-read #cthLg .lg-btn:focus-visible {
  outline: 2px solid var(--cth-light-ink);
  outline-offset: 2px;
}

html.cth-light-modal-open,
body.cth-light-modal-open {
  overflow: hidden !important;
  overscroll-behavior: none;
}

#cthLightModalScrim {
  position: fixed;
  top: 0;
  right: 0;
  bottom: calc(56px + env(safe-area-inset-bottom, 0px));
  left: 0;
  z-index: 100040;
  pointer-events: none;
  opacity: 0;
  background: rgba(24, 27, 25, .44);
  backdrop-filter: blur(4px);
  transition: opacity .2s ease;
}

#cthLightModalScrim.on {
  pointer-events: auto;
  opacity: 1;
}

#cthLightModalSheet {
  position: fixed;
  top: 8px;
  right: auto;
  bottom: auto;
  left: 50%;
  z-index: 100041;
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr);
  width: min(740px, calc(100% - 20px));
  height: min(760px, var(--cth-notes-max-height, calc(100dvh - 80px)));
  max-height: var(--cth-notes-max-height, calc(100dvh - 92px));
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--myc, #6f4f91) 16%, var(--line, #ded8ca));
  border-radius: 24px;
  opacity: 0;
  background: color-mix(in srgb, var(--paper, #FBF7EE) 96%, #fff);
  box-shadow: 0 24px 64px rgba(38, 30, 24, .28), 0 2px 8px rgba(38, 30, 24, .08);
  transform: translate(-50%, 18px) scale(.985);
  transition: opacity .2s ease, transform .24s cubic-bezier(.2, .8, .2, 1);
  pointer-events: none;
}

#cthLightModalSheet.on {
  opacity: 1;
  transform: translate(-50%, 0) scale(1);
  pointer-events: auto;
}

#cthLightModalSheet .cth-light-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 76px;
  padding: 14px 22px 10px;
}

#cthLightModalSheet .cth-light-modal-head small {
  display: block;
  margin-bottom: 2px;
  color: var(--myc, #6f4f91);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
}

#cthLightModalSheet .cth-light-modal-head h2 {
  margin: 0;
  color: var(--ink, #2a2622);
  font-size: 25px;
  font-weight: 850;
}

#cthLightModalSheet .cth-light-modal-close {
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: var(--mytx, #563b78);
  background: transparent;
  font-family: inherit;
  font-size: 34px;
  font-weight: 400;
  line-height: 1;
}

#cthLightModalSheet .cth-notes-kinds,
#cthLightModalSheet .cth-notes-periods {
  display: grid;
  margin: 0 22px;
  border-radius: 16px;
  background: color-mix(in srgb, var(--myc, #6f4f91) 9%, var(--paper, #fbf7ee));
}

#cthLightModalSheet .cth-notes-kinds {
  grid-template-columns: 1fr 1fr;
  padding: 5px;
  box-shadow: inset 0 1px 2px rgba(52, 38, 62, .08);
}

#cthLightModalSheet .cth-notes-periods {
  grid-template-columns: repeat(2, 72px);
  gap: 16px;
  margin-top: 12px;
  padding: 0;
  border-radius: 0;
  border-bottom: 1px solid var(--line, #ded8ca);
  background: transparent;
}

#cthLightModalSheet :is(.cth-notes-kinds,.cth-notes-periods) button {
  min-height: 46px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: color-mix(in srgb, var(--ink, #2a2622) 84%, var(--paper, #fbf7ee));
  font-family: inherit;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

#cthLightModalSheet .cth-notes-kinds button.on {
  background: var(--paper, #fbf7ee);
  color: var(--mytx, #563b78) !important;
  font-weight: 800 !important;
  box-shadow: 0 9px 22px rgba(53, 39, 62, .16), inset 0 0 0 1px color-mix(in srgb, var(--myc, #6f4f91) 18%, transparent), inset 0 1px rgba(255,255,255,.9);
  transform: translateY(-2px);
}

#cthLightModalSheet .cth-notes-periods .cth-light-period {
  position: relative;
  min-height: 44px;
  border-radius: 0;
  background: transparent !important;
  font-size: 14px;
  font-weight: 500;
  transform: none;
  box-shadow: none;
}

#cthLightModalSheet .cth-notes-periods .cth-light-period.is-active {
  color: var(--mytx, #563b78) !important;
  font-weight: 700 !important;
}

#cthLightModalSheet .cth-light-period.is-active::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 20px;
  right: 20px;
  height: 3px;
  border-radius: 2px;
  background: var(--myc, #6f4f91);
}

#cthLightModalSheet .cth-notes-body {
  min-height: 0;
  overflow-y: auto;
  padding: 18px 22px 24px;
  overscroll-behavior: contain;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

#cthLightModalSheet .cth-notes-body::-webkit-scrollbar { display: none; }

#cthLightModalSheet .cth-light-modal-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
}

#cthLightModalSheet .cth-light-modal-body[hidden],
#cthLightModalSheet .cth-notes-list[hidden] { display: none !important; }

#cthLightModalSheet .cth-notes-list { display: grid; gap: 12px; }

#cthLightModalSheet .cth-notes-new {
  min-height: 44px;
  border: 1px solid color-mix(in srgb, var(--myc, #6f4f91) 45%, transparent);
  border-radius: 14px;
  background: transparent;
  color: var(--mytx, #563b78);
  font-family: inherit;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.2;
}

#cthLightModalSheet .cth-note-card {
  display: grid;
  gap: 9px;
  width: 100%;
  padding: 15px 16px;
  border: 1px solid color-mix(in srgb, var(--myc, #6f4f91) 16%, var(--line, #ded8ca));
  border-radius: 16px;
  background: color-mix(in srgb, var(--paper, #fbf7ee) 92%, #fff);
  color: var(--ink, #2a2622);
  font: inherit;
  text-align: left;
}

#cthLightModalSheet .cth-note-card-meta { display: flex; align-items: center; gap: 9px; color: var(--soft, #786f63); font-size: 12px; }
#cthLightModalSheet .cth-note-card-meta b { padding: 3px 8px; border-radius: 7px; background: var(--myc, #6f4f91); color: #fff; }
#cthLightModalSheet .cth-note-card-text { font-size: 16px; line-height: 1.7; }
#cthLightModalSheet .cth-note-card blockquote { margin: 0; padding-left: 10px; border-left: 3px solid color-mix(in srgb, var(--myc, #6f4f91) 35%, transparent); color: var(--soft, #786f63); font-size: 13px; line-height: 1.65; }

#cthLightModalSheet .cth-notes-empty {
  display: grid;
  gap: 7px;
  place-items: center;
  min-height: 180px;
  margin: 0;
  padding: 24px;
  border: 1px dashed color-mix(in srgb, var(--myc, #6f4f91) 24%, transparent);
  border-radius: 16px;
  color: var(--soft, #786f63);
  text-align: center;
}
#cthLightModalSheet .cth-notes-empty b { color: var(--ink, #2a2622); }
#cthLightModalSheet .cth-notes-empty b { font-size: 17px; font-weight: 800; }
#cthLightModalSheet .cth-notes-empty span { max-width: 310px; color: color-mix(in srgb, var(--ink, #2a2622) 70%, var(--paper, #fbf7ee)); font-size: 14px; font-weight: 550; line-height: 1.7; }

#cthLightModalSheet .cth-light-week-card { padding: 15px 16px; border-radius: 15px; background: color-mix(in srgb, var(--myc, #6f4f91) 7%, var(--paper, #fbf7ee)); }
#cthLightModalSheet .cth-light-week-card b { color: var(--mytx, #563b78); font-size: 13px; }
#cthLightModalSheet .cth-light-week-card p { margin: 7px 0 0; color: var(--ink, #2a2622); font-size: 15px; line-height: 1.7; white-space: pre-wrap; }
#cthLightModalSheet .cth-light-week-card.is-empty p { color: var(--soft, #786f63); }

body.cth-mr #cthLightModalSheet #cthLg.cth-light-modal-content,
body.cth-content-read #cthLightModalSheet #cthLg.cth-light-modal-content {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  width: 100%;
  min-height: 0;
  margin: 0 !important;
}

#cthLightModalSheet #cthLg.cth-light-modal-content .lg-t {
  display: none !important;
}

#cthLightModalSheet #cthLg.cth-light-modal-content .lg-hd {
  justify-content: flex-end;
}

#cthLightModalSheet #cthLg.cth-light-modal-content .lg-in {
  flex: 1 1 auto;
  min-height: 260px;
  color: var(--ink, #2a2622);
  font-size: 17px;
  font-weight: 550;
  resize: none;
}

#cthLightModalSheet .cth-note-compose[hidden] { display: none !important; }
#cthLightModalSheet .cth-note-compose {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  color: var(--ink, #2a2622);
}
#cthLightModalSheet .cth-note-compose header {
  display: grid;
  grid-template-columns: 72px 1fr 72px;
  align-items: center;
  margin-bottom: 14px;
}
#cthLightModalSheet .cth-note-compose header h3 { margin: 0; font-size: 19px; font-weight: 850; text-align: center; }
#cthLightModalSheet .cth-note-compose header button { min-height: 40px; border: 0; background: transparent; color: var(--mytx, #563b78); font: 750 14px/1 inherit; text-align: left; }
#cthLightModalSheet .cth-note-compose textarea {
  flex: 1 1 auto;
  width: 100%;
  min-height: 280px;
  padding: 17px 18px;
  border: 1.5px solid color-mix(in srgb, var(--myc, #6f4f91) 42%, var(--line, #ded8ca));
  border-radius: 18px;
  outline: 0;
  background: color-mix(in srgb, var(--paper, #fbf7ee) 92%, #fff);
  color: var(--ink, #2a2622);
  font: 600 18px/1.78 inherit;
  box-sizing: border-box;
  resize: none;
}
#cthLightModalSheet .cth-note-compose textarea:focus { border-color: var(--myc, #6f4f91); box-shadow: 0 0 0 4px color-mix(in srgb, var(--myc, #6f4f91) 12%, transparent); }
#cthLightModalSheet .cth-note-compose-private { margin: 10px 2px 0; color: color-mix(in srgb, var(--ink, #2a2622) 68%, var(--paper, #fbf7ee)); font-size: 13px; font-weight: 600; }
#cthLightModalSheet .cth-note-compose-error { margin: 6px 2px 0; color: #a23a34; font-size: 13px; font-weight: 700; }
#cthLightModalSheet .cth-note-compose footer { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10px; margin-top: 16px; }
#cthLightModalSheet .cth-note-compose footer button { min-height: 50px; border: 1px solid color-mix(in srgb, var(--myc, #6f4f91) 18%, var(--line, #ded8ca)); border-radius: 15px; background: color-mix(in srgb, var(--paper, #fbf7ee) 88%, #fff); color: var(--ink, #2a2622); font: 800 16px/1 inherit; }
#cthLightModalSheet .cth-note-compose footer [data-compose="save"] { border-color: var(--myc, #6f4f91); background: var(--myc, #6f4f91); color: #fff; box-shadow: 0 8px 20px color-mix(in srgb, var(--myc, #6f4f91) 24%, transparent); }

/* 浏览记录仍在卡片弹层内；只有真正输入笔记/亮光时占满可视区域。 */
#cthLightModalSheet.cth-notes-compose-open {
  inset: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: var(--cth-notes-max-height, 100dvh) !important;
  max-height: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  transform: none !important;
  grid-template-rows: auto minmax(0, 1fr);
}

/* The note composer hides the modal header, so its editor must own the only row. */
#cthLightModalSheet.cth-note-compose-open {
  grid-template-rows: minmax(0, 1fr);
}

#cthLightModalSheet.cth-notes-compose-open :is(.cth-notes-kinds,.cth-notes-periods) { display: none; }
#cthLightModalSheet.cth-notes-compose-open .cth-notes-body { height: 100%; padding: 0 22px calc(18px + env(safe-area-inset-bottom, 0px)); overflow: hidden; }
#cthLightModalSheet.cth-note-compose-open > .cth-light-modal-head { display: none; }
#cthLightModalSheet.cth-note-compose-open .cth-notes-body { padding-top: env(safe-area-inset-top, 0px); }
#cthLightModalSheet.cth-notes-compose-open .cth-note-compose { min-height: 100%; }
#cthLightModalSheet.cth-notes-compose-open .cth-note-compose header { min-height: 66px; margin: 0 -4px 14px; }
#cthLightModalSheet.cth-notes-compose-open .cth-note-compose header button { font-size: 16px; }
#cthLightModalSheet.cth-notes-compose-open .cth-note-compose header button:last-child { color: var(--mytx, #563b78); text-align: right; }
#cthLightModalSheet.cth-notes-compose-open .cth-note-compose textarea {
  min-height: 0;
  padding: 10px 2px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  font-size: 19px;
  font-weight: 450;
  line-height: 1.9;
}
#cthLightModalSheet.cth-light-compose-open .cth-light-modal-head { min-height: 68px; }
#cthLightModalSheet.cth-light-compose-open #cthLg.cth-light-modal-content .lg-in { min-height: 0; font-size: 19px; font-weight: 450; line-height: var(--lg-line) !important; }
#cthLightModalSheet.cth-light-compose-open #cthLg.cth-light-modal-content .lg-ft { padding: 12px 0 4px; }
html.cth-notes-compose-open #_bnav,body.cth-notes-compose-open #_bnav { visibility: hidden !important; pointer-events: none !important; }

.cth-light-placeholder {
  width: 100%;
  pointer-events: none;
}

html[data-sv-theme="night"] #cthLightModalSheet { background: var(--paper, #25231F); }

@media (max-width: 560px) {
  #cthLightModalSheet {
    width: calc(100% - 12px);
    height: var(--cth-notes-max-height, calc(100dvh - 72px));
    border-radius: 24px 24px 18px 18px;
  }
  #cthLightModalSheet .cth-light-modal-head { padding-inline: 18px; }
  #cthLightModalSheet .cth-notes-kinds,#cthLightModalSheet .cth-notes-periods { margin-inline: 18px; }
  #cthLightModalSheet .cth-notes-body { padding-inline: 18px; }
}

/* 经节链接是页面自有交互：只屏蔽链接自身的原生长按菜单，不影响正文选句。 */
body.cth-mr a.bref,
body.cth-content-read a.bref {
  touch-action: manipulation;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
  cursor: pointer;
}

/* 晨兴与特会内容页共用顶部经文卡片，避免遮住当前阅读位置。
   冷灰蓝底与米色正文形成稳定对比，夜间模式使用低亮深蓝灰。 */
body.cth-mr,
body.cth-content-read { --cth-verse-pop-bg: #edf5f7; }
html[data-sv-theme="sepia"] body.cth-mr,
html[data-sv-theme="sepia"] body.cth-content-read { --cth-verse-pop-bg: #eef4f4; }
html[data-sv-theme="green"] body.cth-mr,
html[data-sv-theme="green"] body.cth-content-read { --cth-verse-pop-bg: #e7f1f3; }
html[data-sv-theme="night"] body.cth-mr,
html[data-sv-theme="night"] body.cth-content-read { --cth-verse-pop-bg: #25343a; }
body.cth-mr .bref-pop,
body.cth-content-read .bref-pop {
  position: fixed !important;
  /* --bartop 由其他阅读面板按需设置，首次进入晨兴时可能不存在。
     必须回退到本页 56px 页眉，否则 top 变成 auto，卡片会落在长文末尾的屏幕外。 */
  top: calc(var(--bartop, 56px) + 12px) !important;
  right: auto !important;
  bottom: auto !important;
  left: 50% !important;
  width: min(700px, calc(100% - 20px)) !important;
  max-height: min(58dvh, 560px) !important;
  z-index: 9997 !important;
  border-radius: 0 0 18px 18px !important;
  border: 1px solid color-mix(in srgb, var(--cth-reader-brand, #176d68) 18%, transparent) !important;
  background: var(--cth-verse-pop-bg, #edf5f7) !important;
  box-shadow: 0 10px 30px rgba(15, 45, 45, .16);
  color: var(--ink, #1b2626);
  font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  transform: translate(-50%, -14px) !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
body.cth-mr .bref-pop.on,
body.cth-content-read .bref-pop.on {
  transform: translate(-50%, 0) !important;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
body.cth-mr .bref-pop .bp-hd,
body.cth-content-read .bref-pop .bp-hd {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 9px 18px 7px;
  border-bottom: 1px solid var(--line, var(--cth-line));
}
body.cth-mr .bref-pop .bp-hd::before,
body.cth-content-read .bref-pop .bp-hd::before {
  position: absolute;
  top: 5px;
  left: 50%;
  width: 32px;
  height: 4px;
  border-radius: 2px;
  background: var(--line, #dde5e5);
  content: "";
  transform: translateX(-50%);
}
body.cth-mr .bref-pop .bp-t,
body.cth-content-read .bref-pop .bp-t {
  flex: 1;
  font-size: 15px;
  font-weight: 600;
}
body.cth-mr .bref-pop .bp-go,
body.cth-content-read .bref-pop .bp-go {
  flex: none;
  padding: 4px 9px;
  border: 1px solid var(--line, var(--cth-line));
  border-radius: 7px;
  color: var(--gold, var(--cth-reader-brand, #176d68));
  font-size: 12px;
  text-decoration: none;
}
body.cth-mr .bref-pop .bp-x,
body.cth-content-read .bref-pop .bp-x {
  display: flex;
  flex: none;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  margin-right: -10px;
  margin-left: 4px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: none;
  color: var(--cth-muted, #718681);
}
body.cth-mr .bref-pop .bp-ic,
body.cth-content-read .bref-pop .bp-ic {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
}
body.cth-mr .bref-pop .bp-x .bp-ic,
body.cth-content-read .bref-pop .bp-x .bp-ic {
  width: 22px;
  height: 22px;
}
body.cth-mr .bref-pop .bp-bd,
body.cth-content-read .bref-pop .bp-bd {
  max-height: min(45dvh, 430px) !important;
  overflow-y: auto;
  padding: 12px 18px 18px;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  font-size: 17px;
  line-height: 1.85;
}
body.cth-mr .bref-pop .bp-v,
body.cth-content-read .bref-pop .bp-v {
  margin: 0 0 .75em;
  font-size: 17px;
  line-height: 1.85;
}
body.cth-mr .bref-pop .bp-v b,
body.cth-content-read .bref-pop .bp-v b {
  margin-right: 6px;
  color: var(--gold, var(--cth-reader-brand, #176d68));
  font-size: .85em;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}
body.cth-mr .bref-mask,
body.cth-content-read .bref-mask {
  position: fixed;
  z-index: 9996;
  inset: 0;
  display: none;
  background: transparent;
}
body.cth-mr .bref-mask.on,
body.cth-content-read .bref-mask.on {
  display: block;
}

body.cth-content-read.has-piece-reading #app .volp[data-v="1"] {
  display: none !important;
}

/* The outline and transcript are two views of one reader. */
body.cth-content-read :where(#app .v, #svOutBox, #svScrBox) {
  font-size: var(--fs, 17px) !important;
}

body.cth-content-read #svOutBox {
  width: min(calc(100% - 18px), 780px);
  max-width: 780px;
  margin: 24px auto 0;
  padding: 0;
  box-sizing: border-box;
}

body.cth-content-read #svScrBox {
  width: min(calc(100% - 32px), var(--cth-shell, 760px));
  max-width: var(--cth-shell, 760px);
  margin: 0 auto;
  padding: 18px 24px 0;
  box-sizing: border-box;
}

@media (max-width: 767px) {
  body.cth-content-read #svScrBox {
    width: min(calc(100% - 30px), var(--cth-shell, 760px));
  }
}
@media (max-width: 380px) {
  body.cth-content-read #svScrBox { padding-inline: 20px; }
}

.cth-index .cth-mine-footer .cth-week-materials {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  grid-column: 1;
  min-height: 44px;
  font-size: 14px;
  line-height: 1.5;
  text-decoration: underline;
  text-underline-offset: 3px;
}

body.cth-content-read #svScrBox .sc-v {
  text-align: start;
  text-align-last: left;
}

/* Morning HTML already contains the requested day. Do not hide it behind JSON hydration. */
html.sv-shell:not(.sv-ready) body.cth-mr #app.wrap {
  visibility: visible;
}

/* 分组经文：44px 触控区、正文级字号，并在展开内容底部提供明确的收起入口。 */
.cth-olvb {
  min-height: 44px;
  padding: 8px 13px !important;
  border-radius: 22px !important;
  font-size: 14px !important;
  font-weight: 750 !important;
  touch-action: manipulation;
}
.cth-olvr { align-items: flex-start; font-size: calc(var(--fs, 17px) * .96) !important; }
.cth-olvn { min-width: 0 !important; padding-top: .24em; font-size: calc(var(--fs, 17px) * .72) !important; }
.cth-olvt { color: var(--cth-ink, #15181b); text-align: left !important; text-indent: 0 !important; }
.cth-olv {
  background: #eaf4fb !important;
  border-color: #cfe0ed !important;
}
html[data-sv-theme="night"] .cth-olv {
  background: #202f3a !important;
  border-color: #38505f !important;
}
.cth-olv-collapse {
  display: flex;
  width: 100%;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  margin: 12px 0 0;
  border: 0;
  border-top: 1px solid color-mix(in srgb, var(--gold, #8a6518) 20%, transparent);
  background: transparent;
  color: var(--gold, #8a6518);
  font: 750 14px/1.2 var(--cth-sans, -apple-system, sans-serif);
  touch-action: manipulation;
}

/* Weekly resource pages use one calm, reader-sized hierarchy. */
.cth-material-row,
.sd-resource-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 58px;
  padding: 0 4px;
  color: var(--ink, #1f2d2b);
  font-size: 17px;
  font-weight: 650;
  line-height: 1.5;
  text-decoration: none;
}

.cth-material-row .cth-ic,
.sd-resource-row .cth-ic,
.cth-material-hymn .cth-ic {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  color: #64817d;
}

.wk-material-entry{margin:28px 0 20px}
.wk-material-card{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px;border:1px solid var(--line,#dce5e2);border-radius:18px;background:var(--paper,#fff);box-shadow:0 8px 22px rgba(28,76,69,.08);color:var(--ink,#1f2d2b);text-decoration:none}
.wk-material-copy{min-width:0;display:grid;gap:6px}.wk-material-kicker{color:var(--cth-reader-brand,#176d68);font-size:18px;font-weight:800}
.wk-material-copy>strong{color:var(--ink,#1f2d2b);font-size:17px;line-height:1.45}.wk-material-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.wk-material-tags>span{padding:7px 10px;border-radius:999px;background:rgba(23,109,104,.09);color:var(--cth-reader-brand,#176d68);font-size:13px;font-weight:650}
.wk-material-card>.cth-ic{flex:0 0 auto;width:22px;height:22px;margin-top:1px;color:var(--cth-reader-brand,#176d68)}

.cth-materials .ls-wrap,
.cth-burden .ls-wrap {
  width: min(calc(100% - 40px), 760px);
  padding: 28px 0 calc(92px + env(safe-area-inset-bottom));
}

.cth-materials-hero,
.cth-burden-hero {
  margin: 0 0 34px;
}

.cth-materials-hero p,
.cth-burden-hero p {
  margin: 0 0 8px;
  color: #5f7874;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
}

.cth-materials-hero h1,
.cth-burden-hero h1 {
  margin: 0;
  color: var(--ink, #1f2d2b);
  font-family: var(--cth-serif, "Noto Serif SC", "Songti SC", STSong, serif);
  font-size: clamp(21px, calc(6vw - 3px), 27px);
  line-height: 1.5;
}

.cth-materials-group {
  margin: 0 0 34px;
}

.cth-materials-group > h2 {
  margin: 0;
  padding: 0 0 12px;
  border-bottom: 1px solid var(--line, #dce5e2);
  color: var(--ink, #1f2d2b);
  font-size: 19px;
  line-height: 1.5;
}

.cth-materials-nav .cth-material-row,
.cth-material-hymn {
  border-bottom: 1px solid var(--line, #dce5e2);
}

.cth-material-hymn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 70px;
  color: var(--ink, #1f2d2b);
  font-size: 17px;
  font-weight: 650;
  text-decoration: none;
}

.cth-material-hymn small {
  display: block;
  margin-top: 4px;
  color: #6d817d;
  font-size: 13px;
  font-weight: 500;
}

.cth-materials .cth-au {
  width: 100%;
  margin-inline: 0;
}

.cth-burden-reader {
  color: var(--ink, #1f2d2b);
  font-family: var(--cth-serif, "Noto Serif SC", "Songti SC", STSong, serif);
  line-height: 1.9;
}

.cth-burden-reader h2 {
  margin: 30px 0 12px;
  color: var(--cth-reader-brand, #176d68);
  font-family: var(--cth-sans, -apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif);
  font-size: 19px;
  line-height: 1.55;
}

.cth-burden-reader p {
  margin: 0 0 1.35em;
  font-size: clamp(18px, var(--fs, 18px), 19px);
}

body.cth-sunday .sd-resource-nav {
  margin-top: 34px;
  border-top: 1px solid var(--sy-line, #dce5e2);
}

body.cth-sunday .sd-resource-row {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid var(--sy-line, #dce5e2);
  background: transparent;
  cursor: pointer;
  list-style: none;
}

body.cth-sunday .sd-resource-row::-webkit-details-marker {
  display: none;
}

body.cth-sunday .sd-resource-review[open] > .sd-resource-row .cth-ic {
  transform: rotate(180deg);
}

body.cth-sunday .sd-review-days {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 14px 0 20px;
  border-bottom: 1px solid var(--sy-line, #dce5e2);
}

body.cth-sunday .sd-review-day {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border: 1px solid var(--sy-line, #dce5e2);
  border-radius: 10px;
  color: var(--sy-ink, #1f2d2b);
  background: var(--sy-field, #fff);
  font-size: 14px;
  text-decoration: none;
}

@media (max-width: 360px) {
  .cth-materials .ls-wrap,
  .cth-burden .ls-wrap {
    width: min(calc(100% - 32px), 760px);
  }
}

html.cth-menu-lock,
body.cth-menu-lock {
  overflow: hidden !important;
  overscroll-behavior: none;
}

body.cth-menu-lock {
  position: fixed;
  top: var(--cth-menu-top,0);
  right: 0;
  left: 0;
  width: 100%;
}

#cthMenuSheet.cth-drawer {
  overflow-y: auto;
  overscroll-behavior: contain;
  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;
}

#cthMenuScrim.on {
  touch-action: none;
}

.sy-preview-screen {
  scrollbar-width: none;
}

.sy-preview-screen::-webkit-scrollbar {
  display: none;
}

body.cth-sunday .sy-workspace {
  color: var(--sy-ink);
  background: var(--sy-paper);
}

body.cth-sunday .sy-list-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
}

body.cth-sunday .sy-list-head h2 {
  margin: 0;
  color: var(--sy-ink);
}

body.cth-sunday .sy-list-head span,
body.cth-sunday .sy-autosave {
  color: var(--sy-accent);
}

body.cth-sunday .sy-draft-list {
  display: grid;
  gap: 10px;
}

body.cth-sunday .sy-draft {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 8px;
  padding: 10px;
  border: 1px solid var(--sy-line);
  border-radius: 14px;
  background: var(--sy-field);
}

body.cth-sunday .sy-draft button,
body.cth-sunday .sy-editor-back,
body.cth-sunday .sy-mode-choice,
body.cth-sunday .sy-template-actions button,
body.cth-sunday .sy-compose-preview button {
  border: 0;
  color: var(--sy-ink);
  background: var(--sy-field);
}

body.cth-sunday .sy-draft-open {
  min-width: 0;
  text-align: left;
}

body.cth-sunday .sy-mode-sheet {
  position: fixed;
  right: 0;
  bottom: calc(var(--navh,56px) + env(safe-area-inset-bottom));
  left: 0;
  z-index: 8;
  display: grid;
  gap: 8px;
  padding: 18px;
  border-radius: 20px 20px 0 0;
  background: var(--sy-paper);
}

body.cth-sunday .sy-mode-backdrop {
  position: fixed;
  inset: 0;
  z-index: 7;
  background: color-mix(in srgb,var(--sy-ink) 24%,transparent);
}

body.cth-sunday .sy-mode-choice {
  display: grid;
  gap: 4px;
  min-height: 64px;
  padding: 12px;
  text-align: left;
}

body.cth-sunday .sy-mode-choice span {
  color: var(--sy-muted);
}

body.cth-sunday .sy-template-editor,
body.cth-sunday .sy-free-editor {
  display: grid;
  gap: 16px;
}

body.cth-sunday .sy-free-title,
body.cth-sunday .sy-free-body {
  box-sizing: border-box;
  width: 100%;
  padding: 14px;
  border: 1px solid var(--sy-line);
  border-radius: 14px;
  color: var(--sy-ink);
  background: var(--sy-field);
}

body.cth-sunday .sy-free-title {
  min-height: 48px;
  font: inherit;
  font-weight: 700;
}

body.cth-sunday .sy-format-bar {
  position: sticky;
  bottom: calc(var(--navh,56px) + env(safe-area-inset-bottom));
  z-index: 4;
  display: flex;
  gap: 6px;
  overflow-x: auto;
  color: var(--sy-ink);
}

body.cth-sunday .sy-free-body {
  min-height: 52dvh;
  outline: 0;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

body.cth-sunday .sy-free-body>h2 {
  font-size: 1.35em;
}

body.cth-sunday .sy-free-body>h3 {
  font-size: 1.16em;
}

body.cth-sunday .sy-free-body>p {
  font-size: 1em;
}

body.cth-sunday .sy-format-bar button {
  min-height: 44px;
}

body.cth-sunday .sy-resource-bar button {
  min-height: 44px;
}

body.cth-sunday .sy-resource-bar {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 10px;
}

body.cth-sunday .sy-resource-panel,
body.cth-sunday .sy-resource-feedback {
  grid-column: 1 / -1;
}

body.cth-sunday .sy-resource-panel {
  max-height: 42vh;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

body.cth-sunday .sy-resource-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

body.cth-sunday .sy-resource-text {
  flex: 1 1 auto;
  min-width: 0;
  overflow-wrap: anywhere;
}

body.cth-sunday .sy-resource-row button {
  flex-shrink: 0;
  min-width: 44px;
  min-height: 44px;
}

body.cth-sunday .sy-new {
  min-height: 44px;
  margin-top: 14px;
  border: 1px solid var(--sy-accent);
  border-radius: 12px;
  color: var(--sy-accent);
  background: var(--sy-paper);
}

body.cth-sunday .sy-editor-back {
  min-height: 44px;
}

body.cth-sunday .sy-draft-delete {
  min-height: 44px;
}

body.cth-sunday .sy-template-actions button {
  min-height: 44px;
}
.cth-select-group {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 10px 16px 6px;
  background: var(--cth-paper, #fbfaf7);
  color: var(--cth-teal, #176d68);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  pointer-events: none;
}

/* The church picker is one hierarchy, not a stack of nested cards. */
.cth-morning-dialog .cth-locality-picker-field--locality .cth-select-trigger[aria-expanded="true"] {
  box-shadow: none;
}

.cth-locality-picker-field--locality .cth-select-panel:not([hidden]) {
  overflow: hidden;
  padding: 0;
  border: 1px solid #D8E3DF;
  border-radius: 16px;
  background: #FFFFFF;
  box-shadow: 0 10px 28px rgba(18, 59, 54, .10);
}

.cth-locality-picker-field--locality .cth-select-search {
  width: calc(100% - 24px);
  margin: 12px;
  border-color: #D8E3DF;
  background: #F7FAF8;
}

.cth-locality-picker-field--locality .cth-select-list {
  padding: 0;
}

.cth-locality-picker-field--locality .cth-select-group {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 12px 18px 8px;
  border-top: 1px solid #E7EEEB;
  background: #F3F8F6;
  color: #176D68;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .04em;
}

.cth-locality-picker-field--locality .cth-select-group:first-child {
  border-top: 0;
}

.cth-locality-picker-field--locality .cth-select-option.is-grouped {
  min-height: 48px;
  padding: 10px 42px 10px 34px;
  border: 0;
  border-radius: 0;
  background: #FFFFFF;
}

.cth-locality-picker-field--locality .cth-select-option.is-grouped:hover,
.cth-locality-picker-field--locality .cth-select-option.is-grouped.is-active,
.cth-locality-picker-field--locality .cth-select-option.is-grouped[aria-selected="true"] {
  background: #E6F0ED;
}

/* Personal progress: a compact heading, six-day record, and two clear actions. */
.cth-index .cth-mine { background: #fffefb; box-shadow: none; padding: 24px 22px; border-radius: 22px; border-color: #e1e6de; }
.cth-index .cth-mine .cth-dashboard-heading { display: block; padding-right: 0; }
.cth-index .cth-mine .cth-dashboard-kicker {
  margin: 0 44px 20px 0; color: #245c50; font-size: 16px; font-weight: 550; letter-spacing: 0;
}
.cth-index .cth-mine .cth-dashboard-title {
  max-width: none; margin: 0; font-size: 20px; font-weight: 700; line-height: 1.55; letter-spacing: .01em; color: #167eae; text-wrap: pretty;
}
.cth-index .cth-mine .cth-dashboard-date { margin-top: 12px; font-size: 14px; color: #3d6555; }
.cth-index .cth-mine .cth-mine-summary { display: block; margin-top: 22px; padding-top: 22px; border-top: 1px solid #e6e9e1; }
.cth-index .cth-mine .cth-dashboard-locality { margin: 0 0 8px; font-size: 15px; font-weight: 500; color: #345849; }
.cth-index .cth-mine .cth-dashboard-material { margin: 0 0 5px; font-size: 19px; font-weight: 600; line-height: 1.45; color: #233c32; }
.cth-index .cth-mine .cth-dashboard-position { margin: 0; font-size: 15px; font-weight: 500; line-height: 1.6; color: #365d4e; }
.cth-index .cth-mine .cth-dashboard-progress { margin-top: 20px; color: #1b5849; font-size: 15px; font-weight: 550; }
.cth-index .cth-mine .cth-today-state { color: #365d4e; font-weight: 500; }
.cth-index .cth-mine .cth-today-state:not(.is-complete)::before { content: "·"; color: #365d4e; background: #edf0e9; }
.cth-index .cth-mine .cth-dashboard-settings { top: 14px; right: 12px; width: 44px; height: 44px; background: transparent; border: 0; color: #245c50; box-shadow: none; }
.cth-index .cth-mine .cth-mine-footer { gap: 24px 12px; margin-top: 16px; }
.cth-index .cth-mine .cth-week-label { color: #446353; font-size: 13px; font-weight: 500; }
.cth-index .cth-mine-footer .cth-week-materials {
  justify-content: center; min-height: 48px; padding: 8px 12px;
  border: 1px solid #cfd9d0; border-radius: 13px; background: transparent;
  color: #225746; font-size: 15px; font-weight: 600; text-decoration: none; box-sizing: border-box;
}
.cth-index .cth-mine-footer .cth-week-materials:hover { background: #edf3ef; }
.cth-index .cth-mine-footer .cth-today-action { border-radius: 13px; background: #1c6657; font-size: 15px; font-weight: 600; box-shadow: none; margin: 0; }
.cth-index .cth-mine-footer a:focus-visible { outline: 2px solid #176d68; outline-offset: 3px; }
.cth-index .cth-mine .cth-mine-footer {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.cth-index .cth-mine-footer .cth-week-grid { grid-column: 1 / -1; }
.cth-index .cth-mine-footer .cth-week-materials,
.cth-index .cth-mine-footer .cth-today-action {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  margin: 0;
  padding-inline: 8px;
  box-sizing: border-box;
  justify-self: stretch;
  text-align: center;
  white-space: normal;
}
.cth-index .cth-mine-footer .cth-week-materials { grid-column: 1; }
.cth-index .cth-mine-footer .cth-today-action { grid-column: 2; grid-row: auto; }
.cth-index .cth-home-sort { display: flex; gap: 3px; padding: 3px; margin-bottom: 12px; border-radius: 11px; background: #e9ede6; }
.cth-index .cth-home-sort button { flex: 1; min-width: 0; min-height: 44px; border: 0; border-radius: 8px; background: transparent; color: #46614f; font: inherit; font-size: 15px; cursor: pointer; }
.cth-index .cth-home-sort button[aria-pressed="true"] { background: #fffefb; color: #1a5545; font-weight: 600; box-shadow: 0 1px 4px #26392c10; }
.cth-index .cth-home-sort-note { margin: 0 0 16px; color: #54705a; font-size: 14px; line-height: 1.6; }
.cth-index .cth-community-retry { min-height: 44px; margin: 0 auto 16px; padding: 8px 20px; border: 1px solid #cfd9d0; border-radius: 10px; background: #fffefb; color: #225746; font: inherit; cursor: pointer; }
.cth-index .cth-home-sort button:focus-visible,
.cth-index .cth-community-retry:focus-visible,
.cth-index .cth-dashboard-settings:focus-visible { outline: 2px solid #176d68; outline-offset: 3px; }
