/* Client journal: one surface-specific layout layer. Shared brand and semantic
   tokens remain in shared/overhaul.css; existing input/media primitives stay. */
.journal-app .demo-flag { position: fixed; top: 0; left: 0; right: 0; }
.journal-app:has(.demo-flag) {
  padding-top: 38px;
}
.journal-app:has(.demo-flag) .journal-rail {
  top: 38px;
  height: calc(100dvh - 38px);
}
.journal-app {
  min-height: 100dvh;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--f-body);
  font-size: 15px;
  line-height: 1.6;
}
.journal-app h1,
.journal-app h2,
.journal-app h3,
.journal-app h4 {
  letter-spacing: -0.02em;
  text-transform: none;
  line-height: 1.18;
  color: var(--ink);
}
.journal-app h1 {
  font-family: var(--f-disp);
  font-size: 26px;
  font-weight: 700;
  margin: 0 0 8px;
}
.journal-app h2 {
  font-size: 20px;
  margin: 0 0 8px;
  font-weight: 700;
}
.journal-app h3 {
  font-size: 18px;
  margin: 0 0 10px;
}
.journal-app h4 {
  font-size: 17px;
  margin: 0 0 8px;
}
.journal-app p {
  margin: 0 0 10px;
}
.journal-app small,
.journal-app .hint {
  font-size: 13px;
  line-height: 1.55;
}
.journal-app .btn {
  min-height: 44px;
  font-size: 14px;
  border-radius: 8px;
  letter-spacing: 0;
  white-space: normal;
  box-shadow: none;
  text-transform: none;
  color: var(--ink);
  background: var(--card);
  border-color: var(--line);
  transition: transform 0.12s;
}
.journal-app .btn.primary {
  color: var(--on-gold);
  background: var(--gold);
  border-color: var(--gold);
}
.journal-app .btn:not(:disabled):not([aria-disabled="true"]):hover {
  color: var(--gold-dp);
  background: var(--gold-wash);
  border-color: var(--gold-line);
}
.journal-app .btn.primary:not(:disabled):not([aria-disabled="true"]):hover {
  color: var(--on-gold);
  background: var(--gold-hi);
  border-color: var(--gold-hi);
}
.journal-app .btn.danger {
  color: var(--bad);
  border-color: var(--bad-line);
  background: var(--bad-wash);
}
.journal-app .btn.danger:not(:disabled):not([aria-disabled="true"]):hover {
  color: var(--bad);
  border-color: var(--bad);
  background: var(--bad-wash);
}
.journal-app .btn.ghost {
  background: transparent;
  border-color: transparent;
}
.journal-app .btn.wide + .btn.wide {
  margin-top: 8px;
}
.journal-app .card {
  box-shadow: none;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 16px;
}
.journal-app .input {
  min-height: 44px;
  padding: 9px 11px;
  border-radius: 8px;
  font-size: 16px;
  background: var(--field, var(--card));
  color: var(--ink);
}
.journal-app .field {
  display: block;
  margin-bottom: 12px;
}
.journal-app .field > span,
.journal-app .field > label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 8px;
}
.journal-app .field .hint {
  font-weight: 400;
}
.journal-app .tag {
  font-family: var(--f-body);
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
  padding: 5px 9px;
  white-space: normal;
}
.journal-app .card-lnk {
  font-family: var(--f-body);
  text-transform: none;
  letter-spacing: 0;
  font-size: 14px;
  min-height: 44px;
  padding: 8px 0;
  color: var(--gold-dp);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-align: left;
}
.journal-app .eyebrow {
  font-family: var(--f-body);
  font-size: 14px;
  letter-spacing: 0;
  text-transform: none;
}
.journal-app .chip {
  min-height: 44px;
  padding: 10px 15px;
  border-radius: 8px;
  font-size: 14px;
  letter-spacing: 0;
}
.journal-app .chip[aria-pressed="true"] {
  background: var(--gold-wash);
  border-color: var(--gold-dp);
  color: var(--ink);
}
.journal-app .muted,
.journal-app .hint {
  color: var(--ink-2);
}
.journal-app .preserve-lines {
  white-space: pre-wrap;
}
.journal-shell {
  display: grid;
  grid-template-columns: var(--rail-width,192px) minmax(0, 1fr);
  min-height: 100dvh;
}
.journal-rail {
  position: sticky;
  top: 0;
  height: 100dvh;
  display: flex;
  flex-direction: column;
  background: var(--rail-bg, var(--card));
  padding: 24px 16px 16px;
  border-right: 1px solid var(--line);
  overflow-y: auto;
}
.journal-brand {
  padding: 0 8px 24px;
}
.journal-brand img {
  width: 140px;
  max-height: 56px;
  object-fit: contain;
  object-position: left;
}
.journal-brand > span {
  display: block;
  margin-top: 12px;
  font-size: 12px;
  color: var(--ink-2);
}
.journal-rail .rail-nav {
  gap: 6px;
}
.journal-rail .rail-nav button,
.journal-bottom button {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 0;
  background: transparent;
  color: var(--ink-2);
  min-height: 44px;
  padding: 12px;
  border-radius: 8px;
  cursor: pointer;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  text-align: left;
}
.journal-rail .rail-nav button[aria-current="page"] {
  color: var(--ink);
  background: var(--gold-wash);
  box-shadow: inset 3px 0 var(--gold);
  border: 0;
}
.journal-rail .rail-nav button svg {
  width: 20px;
  height: 20px;
}
.journal-rail-bottom {
  margin-top: auto;
  padding-top: 20px;
}
.journal-person {
  border: 0;
  background: transparent;
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--ink);
  cursor: pointer;
  padding: 8px;
  text-align: left;
  font: inherit;
  font-size: 14px;
  min-height: 44px;
  min-width: 0;
}
.journal-person b,
.journal-person small {
  display: block;
}
.journal-person small {
  color: var(--ink-2);
  margin-top: 4px;
  font-size: 12px;
  line-height: 1.4;
}
.journal-person .avatar {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
}
.journal-person > span {
  min-width: 0;
  overflow-wrap: anywhere;
  line-height: 1.4;
}
.journal-rail .journal-person {
  width: 100%;
  padding-inline: 4px;
}
.journal-session-link {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  font: inherit;
  font-size: 14px;
  border: 0;
  background: none;
  padding: 12px;
  margin-bottom: 15px;
  border-radius: 8px;
  min-height: 44px;
  cursor: pointer;
  color: var(--ink-2);
}
.journal-session-link[hidden] {
  display: none;
}
.journal-session-link[aria-current="page"] {
  color: var(--gold-dp);
  background: var(--gold-wash);
  box-shadow: inset 3px 0 var(--gold);
}
.journal-session-link:hover,
.journal-person:hover {
  background: var(--card-2);
  border-radius: 8px;
}
.journal-column {
  min-width: 0;
}
.journal-header {
  height: 56px;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 var(--page-gutter,20px);
  background: var(--card);
}
.journal-header-label {
  font-size: 14px;
  color: var(--ink-2);
}
.journal-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.journal-header-sessions {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 12px;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  color: var(--ink-2);
  background: transparent;
}
.journal-header-sessions[aria-current="page"],
.journal-header-sessions:hover {
  color: var(--gold-dp);
  background: var(--gold-wash);
  border-color: var(--gold-line);
}
.journal-mobile-logo {
  display: none;
}
.journal-main {
  max-width: var(--content-width);
  margin: 0 auto;
  padding: 16px var(--page-gutter,20px) 32px;
  outline: 0;
  min-width: 0;
}
.journal-bottom {
  display: none;
}
.journal-pagehead {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 24px;
}
.journal-pagehead > div {
  max-width: 760px;
}
.journal-pagehead p {
  color: var(--ink-2);
  margin: 0;
}
.journal-pagehead .journal-context {
  font-size: 14px;
  margin-bottom: 9px;
}
.journal-section-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}
.journal-section-top h2,
.journal-section-top h3 {
  margin: 0;
}
.journal-section-top > span:first-child {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink-2);
}
.journal-section {
  padding: 16px 0;
  border-top: 1px solid var(--line);
}
.journal-section:first-child {
  padding-top: 0;
  border-top: 0;
}
.journal-section p:last-child {
  margin-bottom: 0;
}
.journal-home-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.48fr);
  gap: 16px;
  align-items: start;
}
.journal-home-grid:has(.journal-home-primary:empty) { grid-template-columns: 1fr; }
.journal-home-primary:empty { display: none; }
.journal-home-primary,
.journal-home-aside {
  min-width: 0;
}
.journal-workout-focus {
  background: var(--card);
  padding: 16px;
  border-radius: 12px;
  border: 1px solid var(--line);
  border-top: 3px solid var(--gold);
  margin-bottom: 16px;
}
.journal-workout-focus h2 {
  font-size: 26px;
  max-width: 24ch;
}
.journal-workout-focus .btn-row { display: flex; flex-wrap: wrap; gap: 12px; }
.journal-workout-focus .btn-row > .btn { flex: 0 1 auto; }
.journal-workout-focus > p {
  color: var(--ink-2);
}
.journal-exercise-preview {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.journal-exercise-preview li {
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 9px 0;
  border-bottom: 1px solid var(--line);
  font-size: 14px;
}
.journal-exercise-preview li b {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.journal-session-focus {
  padding: 16px;
  background: var(--gold-wash);
  border-radius: 12px;
  margin-bottom: 16px;
}
.journal-session-focus > span {
  display: block;
  color: var(--ink-2);
  font-size: 14px;
  margin-bottom: 15px;
}
.journal-session-focus h2 {
  font-size: 27px;
}
.journal-session-focus .session-time {
  margin: 18px 0;
}
.journal-session-focus p {
  font-size: 14px;
}
.journal-session-focus .btn {
  background: var(--card);
}
.journal-checkin {
  padding: 16px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  margin-bottom: 16px;
}
.journal-checkin p {
  font-size: 14px;
  color: var(--ink-2);
}
.journal-checkin h2 {
  font-size: 20px;
}
.journal-coach-note {
  padding: 16px 0;
  border-top: 1px solid var(--line);
}
.journal-coach-note h2 {
  font-size: 19px;
}
.journal-coach-note p {
  font-size: 14px;
  color: var(--ink-2);
}
.journal-meal-preview {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.journal-meal-preview > div {
  border-left: 3px solid var(--gold-line);
  padding: 10px 14px;
}
.journal-meal-preview span {
  display: block;
  font-size: 13px;
  color: var(--ink-2);
  margin-top: 4px;
}
.journal-latest {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}
.journal-latest span {
  font-size: 14px;
  color: var(--ink-2);
  display: block;
}
.journal-latest b {
  font-family: var(--f-disp);
  font-size: 26px;
  display: block;
  margin: 6px 0;
}
.journal-latest small {
  margin-left: 6px;
  font-weight: 400;
}
.journal-notice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding: 12px 14px;
  background: var(--gold-wash);
  border-left: 3px solid var(--gold);
  margin-bottom: 16px;
  font-size: 14px;
}
.journal-notice p {
  margin: 0;
}
.journal-empty {
  background: var(--card);
  border: 1px dashed var(--line);
  padding: 20px 16px;
  border-radius: 12px;
  text-align: left;
}
.journal-empty-mark {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--gold-dp);
  background: var(--gold-wash);
  margin-bottom: 16px;
}
.journal-empty h2 {
  font-size: 20px;
}
.journal-empty p {
  max-width: 54ch;
  color: var(--ink-2);
  margin-bottom: 0;
}
.journal-calendar {
  background: var(--card);
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  margin-bottom: 16px;
}
.journal-calendar-head {
  display: flex;
  align-items: center;
  gap: 16px;
  justify-content: space-between;
  margin-bottom: 12px;
}
.journal-calendar-head .field {
  margin: 0;
  max-width: 175px;
}
.journal-calendar-head .field > span {
  font-size: 12px;
  margin-bottom: 5px;
}
.journal-calendar-head > div {
  margin-left: auto;
}
.journal-calendar-head > div b,
.journal-calendar-head > div span {
  display: block;
}
.journal-calendar-head > div span {
  font-size: 12px;
  color: var(--ink-2);
  margin-top: 4px;
}
.journal-days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
}
.journal-days button {
  background: transparent;
  border: 1px solid transparent;
  color: var(--ink);
  border-radius: 9px;
  padding: 12px 4px;
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  font: inherit;
  min-width: 0;
}
.journal-days button > span {
  font-size: 12px;
  color: var(--ink-2);
}
.journal-days button > b {
  font-size: 21px;
  font-variant-numeric: tabular-nums;
}
.journal-days .journal-day-date { font-size: 10px; color: var(--ink-2); white-space: nowrap; }
.journal-days button[aria-pressed="true"] {
  background: var(--gold-wash);
  border-color: var(--gold);
}
.journal-days i {
  height: 4px;
  width: 4px;
  border-radius: 50%;
  display: block;
}
.journal-days i.has-plan {
  background: var(--gold-dp);
}
.journal-plan-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(230px, 0.42fr);
  gap: 16px;
}
.journal-plan-layout > *,
.journal-plan-aside {
  min-width: 0;
}
.journal-plan-aside {
  align-self: start;
}
.journal-prescription {
  background: var(--card);
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.journal-exercise-group {
  margin-top: 16px;
}
.journal-exercise-group > h3 {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink-2);
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.journal-exercise {
  display: flex;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.journal-exercise:last-child {
  border: 0;
}
.journal-exercise-number {
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  background: var(--gold-wash);
  border-radius: 6px;
  font-size: 12px;
  color: var(--gold-dp);
}
.journal-exercise-body {
  min-width: 0;
  flex: 1;
}
.journal-exercise p {
  font-size: 14px;
  color: var(--ink-2);
  margin: 0 0 8px;
}
.journal-prescription-values {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 28px;
  margin: 16px 0;
}
.journal-prescription-values dt {
  font-size: 12px;
  color: var(--ink-2);
}
.journal-prescription-values dd {
  font-size: 20px;
  font-weight: 600;
  margin: 3px 0 0;
}
.journal-prescription-values small {
  font-weight: 400;
}
.journal-exercise-detail summary {
  font-size: 14px;
  color: var(--gold-dp);
  cursor: pointer;
  padding: 8px 0;
}
.journal-exercise-detail p {
  margin: 10px 0;
}
.journal-coach-cue {
  padding: 12px;
  background: var(--band-2);
  border-left: 2px solid var(--gold-line);
}
.journal-complete-bar {
  margin-top: 16px;
  padding: 22px 0 0;
  border-top: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.journal-complete-bar p {
  font-size: 14px;
  margin: 0;
}
.journal-list-row {
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
  font-size: 14px;
}
.journal-list-row b,
.journal-list-row span,
.journal-list-row small {
  display: block;
}
.journal-list-row span,
.journal-list-row small {
  color: var(--ink-2);
  margin-top: 4px;
}
.journal-meal {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  margin-bottom: 12px;
  overflow: hidden;
}
.journal-meal header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line);
}
.journal-meal h3 {
  margin: 0;
  flex: 1;
}
.journal-meal header > span:last-child {
  font-size: 13px;
  color: var(--ink-2);
}
.journal-meal-index {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--gold-wash);
  color: var(--gold-dp);
  font-size: 13px;
  flex-shrink: 0;
}
.journal-meal > div {
  padding: 0 16px;
}
.journal-food-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.journal-food-row:last-child {
  border: 0;
}
.journal-food-row b {
  font-size: 15px;
}
.journal-food-row > span {
  white-space: nowrap;
  font-size: 14px;
}
.journal-food-row p {
  font-size: 13px;
  color: var(--ink-2);
  margin: 5px 0 0;
}
.journal-meal footer {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  background: var(--band-2);
  padding: 8px 16px;
  font-size: 12px;
  color: var(--ink-2);
}
.journal-nutrition-summary {
  padding: 16px;
  background: var(--gold-wash);
  border-radius: 12px;
  margin-bottom: 16px;
}
.journal-nutrition-summary p {
  font-size: 14px;
}
.journal-nutrition-summary strong {
  font-size: 40px;
  font-family: var(--f-disp);
  font-weight: 700;
}
.journal-nutrition-summary strong small {
  font-size: 15px;
  font-weight: 400;
}
.journal-nutrition-summary dl {
  margin: 24px 0 0;
}
.journal-nutrition-summary dl > div,
.journal-facts > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
  font-size: 14px;
}
.journal-nutrition-summary dd,
.journal-facts dd {
  margin: 0;
  text-align: right;
  font-weight: 600;
}
.journal-facts {
  margin: 0;
}
.journal-facts dt {
  color: var(--ink-2);
}
.journal-subnav {
  display: flex;
  gap: 16px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 16px;
  overflow-x: auto;
}
.journal-subnav button {
  background: none;
  border: 0;
  border-bottom: 3px solid transparent;
  padding: 12px 0;
  color: var(--ink-2);
  white-space: nowrap;
  font: inherit;
  font-size: 14px;
  min-height: 44px;
  cursor: pointer;
}
.journal-subnav button[aria-current="page"] {
  color: var(--ink);
  border-bottom-color: var(--gold);
  font-weight: 700;
}
.journal-progress-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 0.4fr);
  gap: 16px;
  margin-bottom: 16px;
}
.journal-trend {
  padding: 16px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
}
.journal-trend .field {
  max-width: 180px;
  margin-bottom: 0;
}
.journal-reading {
  font-size: 16px;
}
.journal-reading b {
  font-family: var(--f-disp);
  font-size: 38px;
}
.journal-trend-summary {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 16px 0;
  border-top: 1px solid var(--line);
  margin-top: 24px;
}
.journal-trend-summary span {
  display: block;
  color: var(--ink-2);
  font-size: 12px;
  margin-bottom: 5px;
}
.journal-trend-summary b {
  font-size: 16px;
}
.journal-data summary {
  font-size: 14px;
  cursor: pointer;
  padding: 10px 0;
  color: var(--gold-dp);
}
.journal-data table {
  width: 100%;
  font-size: 14px;
  border-collapse: collapse;
}
.journal-data th,
.journal-data td {
  padding: 12px 8px;
  text-align: left;
  border-bottom: 1px solid var(--line);
}
.journal-goals {
  padding-left: 20px;
  margin: 0;
}
.journal-goals li {
  margin-bottom: 12px;
}
.journal-completion-list article {
  display: flex;
  gap: 14px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.journal-completion-list article div {
  flex: 1;
}
.journal-completion-list b,
.journal-completion-list span {
  display: block;
}
.journal-completion-list article div span,
.journal-completion-list time {
  font-size: 13px;
  color: var(--ink-2);
}
.journal-tick {
  width: 28px;
  height: 28px;
  display: grid !important;
  place-items: center;
  background: var(--ok-wash);
  color: var(--ok);
  border-radius: 50%;
}
.journal-checkin-invite {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  padding: 16px;
  background: var(--gold-wash);
  border-radius: 12px;
  margin-bottom: 16px;
}
.journal-checkin-invite p {
  margin: 0;
  color: var(--ink-2);
}
.journal-checkin-invite .btn {
  flex-shrink: 0;
}
.journal-checkin-form {
  max-width: 740px;
  padding: 16px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  margin-bottom: 16px;
}
.journal-checkin-form fieldset {
  border: 0;
  margin: 16px 0;
  padding: 0;
}
.journal-checkin-form legend {
  font-size: 15px;
  font-weight: 600;
  margin-bottom: 12px;
}
.journal-checkin-history {
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}
.journal-checkin-history > div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.journal-checkin-history p {
  font-size: 14px;
  margin: 8px 0;
}
.journal-inline-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 13px;
  color: var(--ink-2);
}
.journal-appointment {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.journal-appointment-date {
  background: var(--gold-wash);
  border-radius: 10px;
  padding: 8px 6px;
  text-align: center;
  height: fit-content;
}
.journal-appointment-date b {
  display: block;
  font-family: var(--f-disp);
  font-size: 26px;
}
.journal-appointment-date span {
  font-size: 12px;
}
.journal-time {
  font-size: 23px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}
.journal-appointment p {
  margin-bottom: 10px;
  font-size: 14px;
}
.journal-appointment p.journal-time {
  font-size: 23px;
}
.journal-account-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.48fr);
  align-items: start;
  gap: 24px;
}
.journal-account-main,
.journal-account-aside {
  display: grid;
  gap: 20px;
  min-width: 0;
}
.journal-account-panel {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  min-width: 0;
}
.journal-account-panel > h2 {
  font-size: 17px;
  padding: 20px 20px 8px;
  margin: 0;
}
.journal-account-links {
  margin: 0;
}
.journal-account-links button {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  text-align: left;
  min-height: 84px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
  padding: 16px 20px;
  cursor: pointer;
  color: var(--ink);
  font: inherit;
}
.journal-account-links button:last-child {
  border-bottom: 0;
}
.journal-account-links button:hover:not(:disabled) {
  background: var(--card-2);
}
.journal-account-links button > svg:first-child {
  width: 22px;
  height: 22px;
  color: var(--gold-dp);
}
.journal-account-links button > svg:last-child {
  width: 17px;
  height: 17px;
  color: var(--ink-3);
}
.journal-account-links button > span {
  flex: 1;
  min-width: 0;
  overflow-wrap: anywhere;
  line-height: 1.45;
}
.journal-account-links button b {
  font-size: 14px;
  font-weight: 600;
}
.journal-account-links button b,
.journal-account-links button small {
  display: block;
}
.journal-account-links button small {
  color: var(--ink-2);
  margin-top: 4px;
  font-size: 13px;
}
.journal-account-panel.journal-account-package {
  padding: 20px;
}
.journal-account-package > h2 {
  color: var(--ink-2);
  padding: 0;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 8px;
}
.journal-account-package .journal-package-name {
  font-size: 22px;
  line-height: 1.3;
  margin-bottom: 16px;
}
.journal-account-package .journal-service-list {
  display: grid;
  gap: 8px;
  margin: 0 0 20px;
}
.journal-account-package .journal-service-list li {
  border: 0;
  padding: 0;
  color: var(--ink-2);
}
.journal-account-package .hint {
  border-top: 1px solid var(--line);
  margin: 0;
  padding-top: 14px;
}
.journal-account-session {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-inline: 4px;
}
.journal-account-session > p {
  max-width: 40ch;
  margin: 0;
}
.journal-account-session > .btn {
  flex-shrink: 0;
}
.journal-coach-note.journal-account-support {
  padding: 20px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
}
.journal-account-support > p {
  color: var(--ink-2);
  font-size: 14px;
}
.journal-account-support .btn {
  margin-top: 16px;
}
.journal-package-name {
  font-size: 25px;
  font-weight: 700;
}
.journal-service-list {
  list-style: none;
  padding: 0;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.journal-service-list li {
  font-size: 13px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 8px 12px;
}
.journal-contact-link {
  display: block;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  overflow-wrap: anywhere;
}
.journal-contact-link span {
  font-size: 12px;
  color: var(--ink-2);
  display: block;
}
.journal-contact-link b {
  font-size: 14px;
  font-weight: 600;
}
.journal-profile-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.45fr);
  gap: 12px;
}
.journal-profile-summary {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--line);
}
.journal-profile-summary .avatar {
  flex-shrink: 0;
}
.journal-profile-summary h2 {
  margin-bottom: 5px;
}
.journal-profile-form fieldset {
  border: 0;
  padding: 0;
  margin: 0 0 20px;
}
.journal-profile-form legend {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 12px;
}
.journal-profile-form .grid2 {
  gap: 0 20px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.journal-profile-form .field {
  min-width: 0;
}
.journal-profile-actions {
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.journal-measurement-list details {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  margin-bottom: 12px;
  padding: 0 14px;
}
.journal-measurement-list summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  cursor: pointer;
}
.journal-measurement-list summary > span {
  display: flex;
  gap: 12px;
  align-items: center;
}
.journal-measurement-list .journal-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 16px;
  padding-bottom: 16px;
}
.journal-photo-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 16px;
}
.journal-photo-library {
  min-width: 0;
}
.journal-photo-tools {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
}
.journal-photo-tools .card {
  padding: 14px;
}
.journal-photo-workspace .shots {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.journal-photo-workspace .shot {
  min-width: 0;
}
.journal-photo-workspace .card {
  margin-bottom: 16px;
}
.journal-photo-workspace .compare {
  gap: 12px;
}
.journal-payment-summary {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  padding: 16px;
  background: var(--gold-wash);
  border-radius: 12px;
  margin-bottom: 16px;
}
.journal-payment-summary span {
  font-size: 13px;
  display: block;
  margin-bottom: 10px;
}
.journal-payment-summary strong {
  font-family: var(--f-disp);
  font-size: 26px;
}
.journal-payment-summary p {
  font-size: 14px;
  margin: 12px 0 0;
}
.journal-receipts details {
  border-bottom: 1px solid var(--line);
}
.journal-receipts summary {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  align-items: center;
  gap: 16px;
  cursor: pointer;
  padding: 16px 0;
}
.journal-receipts summary b,
.journal-receipts summary small {
  display: block;
}
.journal-receipts summary small {
  color: var(--ink-2);
  margin-top: 5px;
}
.journal-receipts .journal-facts {
  max-width: 680px;
  padding-bottom: 16px;
}
.entry {
  display: grid;
  grid-template-columns: minmax(320px, 0.85fr) minmax(0, 1fr);
  min-height: 100dvh;
  background: var(--card);
}
.entry-context {
  padding: 32px clamp(24px, 3vw, 48px);
  background: var(--gold-wash);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 24px;
  position: sticky;
  top: 0;
  height: 100dvh;
}
.entry-logo img {
  width: 190px;
  max-height: 90px;
  object-fit: contain;
  object-position: left;
}
.entry-context h2 {
  font-family: var(--f-disp);
  font-size: clamp(34px, 3.5vw, 52px);
  line-height: 1.08;
  margin-bottom: 16px;
}
.entry-context > div p:first-child {
  font-size: 14px;
  color: var(--gold-dp);
}
.entry-context > div p {
  max-width: 35ch;
  color: var(--ink-2);
}
.entry-journey {
  padding-left: 22px;
  font-size: 14px;
  color: var(--ink-2);
  margin: 0;
}
.entry-journey li {
  margin-bottom: 13px;
}
.entry-context .built {
  text-align: left;
  color: var(--ink-2);
  font-family: var(--f-body);
  letter-spacing: 0;
  font-size: 12px;
  margin: 0;
}
.entry-main {
  display: flex;
  justify-content: center;
  padding: 24px;
  min-width: 0;
}
.entry-content {
  width: min(100%, 460px);
  margin: 0;
}
.entry-wide .entry-content {
  width: min(100%, 610px);
}
.entry h1 {
  font-size: 28px;
}
.entry .home-link {
  border: 0;
  border-radius: 0;
  background: none;
  padding: 0;
  min-height: 44px;
  margin: 0 0 24px;
  display: inline-flex;
  color: var(--ink-2);
}
.entry-intro {
  color: var(--ink-2);
  margin-bottom: 16px !important;
}
.entry-step {
  font-size: 13px;
  color: var(--gold-dp);
}
.entry-help {
  border-top: 1px solid var(--line);
  margin-top: 16px;
  padding-top: 16px;
  font-size: 14px;
}
.entry-help a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  margin-right: 22px;
  color: var(--gold-dp);
}
.entry-help p {
  margin-bottom: 4px;
}
.entry-review {
  background: var(--band-2);
  padding: 14px;
  border-radius: 10px;
  margin-bottom: 16px;
}
.entry-review > span {
  font-size: 12px;
  display: block;
  color: var(--ink-2);
  margin-bottom: 6px;
}
.entry-review > b {
  display: block;
  overflow-wrap: anywhere;
}
.entry-review p {
  margin: 5px 0 0;
  font-size: 14px;
  color: var(--ink-2);
}
.entry-instructions {
  padding-left: 22px;
  margin: 12px 0;
}
.entry-instructions li {
  padding: 8px 0;
}
.entry-progress {
  padding: 0;
  list-style: none;
  display: flex;
  gap: 15px;
  margin: 16px 0;
}
.entry-progress li {
  font-size: 12px;
  color: var(--ink-2);
  flex: 1;
}
.entry-progress li span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--band);
  margin-bottom: 8px;
  font-weight: 700;
}
.entry-progress li[aria-current="step"] {
  color: var(--ink);
  font-weight: 700;
}
.entry-progress li[aria-current="step"] span {
  background: var(--gold);
  color: #252820;
}
.entry-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  border-top: 1px solid var(--line);
  padding-top: 16px;
  margin-top: 16px;
}
.entry-optional summary {
  cursor: pointer;
  min-height: 44px;
  padding: 10px 0;
  font-size: 14px;
  color: var(--gold-dp);
}
.entry-optional[open] summary {
  margin-bottom: 15px;
}
.entry-status {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.entry-status li {
  display: flex;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.entry-status li > span {
  width: 28px;
  height: 28px;
  background: var(--band);
  border-radius: 50%;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  font-size: 12px;
}
.entry-status li[aria-current="step"] > span {
  background: var(--gold);
  color: #252820;
}
.entry-status b,
.entry-status small {
  display: block;
}
.entry-status small {
  color: var(--ink-2);
  margin-top: 4px;
}
.journal-password {
  display: flex;
  position: relative;
}
.journal-password .input {
  padding-right: 70px;
  width: 100%;
}
.journal-password button {
  position: absolute;
  right: 4px;
  top: 2px;
  height: 42px;
  border: 0;
  background: none;
  padding: 8px 12px;
  color: var(--gold-dp);
  cursor: pointer;
  font-size: 13px;
}
.entry .auth-switch {
  margin: 0 0 24px;
}
.entry .registration-goals {
  border: 0;
  padding: 0;
  margin-bottom: 16px;
}
.entry .registration-goals legend {
  font-size: 15px;
  font-weight: 600;
  margin-bottom: 14px;
}
.entry .registration-goals .chk {
  font-size: 14px;
  background: var(--band-2);
  padding: 10px 13px;
  border-radius: 8px;
}
.entry .registration-goals .chips {
  margin-bottom: 12px;
}
.journal-signing-layout {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 16px;
}
.journal-signing-steps {
  list-style: none;
  padding: 0;
  margin: 0 0 25px;
}
.journal-signing-steps li {
  display: flex;
  align-items: start;
  gap: 12px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}
.journal-signing-steps li > span {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  background: var(--band);
  border-radius: 50%;
  font-size: 12px;
}
.journal-signing-steps li[aria-current="step"] > span {
  background: var(--gold);
  color: #252820;
}
.journal-signing-steps b {
  font-size: 14px;
}
.journal-signing-steps small {
  display: block;
  color: var(--ink-2);
  margin-top: 6px;
}
.journal-document {
  padding: 20px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
}
.journal-document .document-copy {
  font-size: 15px;
  line-height: 1.8;
  max-width: 72ch;
  white-space: pre-wrap;
}
.journal-signature {
  border-top: 1px solid var(--line);
  padding-top: 28px;
  margin-top: 32px;
}
.journal-signature .chk {
  display: flex;
  align-items: flex-start;
  font-size: 14px;
  margin: 20px 0;
}
.journal-signature .chk input {
  margin-top: 4px;
}
.journal-signature > button[type="submit"] {
  display: block;
}
.journal-signing-help {
  font-size: 13px;
  line-height: 1.6;
  margin: 20px 0;
}
.journal-signing-help .btn-row {
  gap: 8px;
  flex-wrap: wrap;
}
html[data-theme="light"] .journal-brand img,
html[data-theme="light"] .journal-mobile-logo,
html[data-theme="light"] .entry-logo img {
  filter: brightness(0.55) saturate(1.05);
}
html[data-theme="dark"] .journal-app .btn.primary {
  background: var(--gold);
  color: var(--on-gold);
  border-color: var(--gold);
}
@media (min-width: 1600px) {
  .journal-shell {
    grid-template-columns: var(--rail-width,192px) minmax(0, 1fr);
  }
}
@media (max-width: 1200px) {
  .journal-shell {
    grid-template-columns: var(--rail-width,192px) minmax(0, 1fr);
  }
  .journal-rail {
    padding-inline: 12px;
  }
  .journal-brand img {
    width: 140px;
  }
  .journal-home-grid,
  .journal-plan-layout,
  .journal-progress-layout {
    gap: 16px;
  }
  .journal-main {
    padding-inline: var(--page-gutter,20px);
  }
  .journal-header {
    padding-inline: var(--page-gutter,20px);
  }
  .journal-workout-focus {
    padding: 16px;
  }
  .journal-plan-layout {
    grid-template-columns: minmax(0, 1fr) 240px;
  }
  .journal-signing-layout {
    grid-template-columns: 210px minmax(0, 1fr);
  }
  .journal-photo-workspace {
    grid-template-columns: minmax(0, 1fr) 240px;
  }
}
@media (max-width: 1000px) {
  .journal-home-grid,
  .journal-plan-layout,
  .journal-progress-layout,
  .journal-account-grid,
  .journal-profile-grid {
    grid-template-columns: 1fr;
  }
  .journal-home-aside {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
  .journal-plan-aside {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
  .journal-plan-aside .journal-section {
    padding-top: 0;
    border-top: 0;
  }
  .journal-photo-workspace {
    grid-template-columns: 1fr;
  }
  .journal-photo-tools {
    grid-column: auto;
    grid-row: auto;
  }
  .journal-photo-workspace .shots {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .entry-context {
    padding: 20px;
    gap: 16px;
  }
  .journal-signing-layout {
    grid-template-columns: 1fr;
  }
  .journal-signing-steps {
    display: flex;
    gap: 16px;
  }
  .journal-signing-steps li {
    flex: 1;
    border: 0;
    font-size: 12px;
  }
  .journal-signing-layout > aside > .hint {
    display: none;
  }
}
@media (max-width: 900px) {
  .journal-shell {
    display: block;
  }
  .journal-rail {
    display: none;
  }
  .journal-header {
    height: 56px;
    padding: 0 20px;
  }
  .journal-mobile-logo {
    display: block;
    width: 110px;
    max-height: 46px;
    object-fit: contain;
  }
  .journal-header-label {
    display: none;
  }
  .journal-header .journal-person span {
    font-size: 13px;
  }
  .journal-main {
    padding: 12px var(--page-gutter,12px) calc(80px + env(safe-area-inset-bottom));
  }
  .journal-pagehead {
    margin-bottom: 16px;
    gap: 14px;
    flex-wrap: wrap;
  }
  .journal-pagehead h1 {
    font-size: 26px;
  }
  .journal-pagehead p {
    font-size: 14px;
  }
  .journal-bottom {
    display: flex;
    justify-content: space-around;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 30;
    background: var(--card);
    border-top: 1px solid var(--line);
    padding: 8px 8px calc(8px + env(safe-area-inset-bottom));
    box-shadow: 0 -3px 18px rgba(0, 0, 0, 0.03);
  }
  .journal-bottom button {
    position: relative;
    flex: 1;
    justify-content: center;
    flex-direction: column;
    gap: 6px;
    padding: 7px 2px;
    border-radius: 8px;
    font-size: 12px;
    line-height: 1.2;
  }
  .journal-bottom button svg {
    width: 21px;
    height: 21px;
  }
  .journal-bottom button[aria-current="page"] {
    color: var(--gold-dp);
    background: var(--gold-wash);
  }
  .journal-bottom .dot {
    position: absolute;
    top: 5px;
    right: 25%;
    height: 5px;
    width: 5px;
    border-radius: 50%;
    background: var(--gold-dp);
  }
  .journal-home-grid {
    gap: 16px;
  }
  .journal-home-aside {
    grid-template-columns: 1fr;
  }
  .journal-session-focus,
  .journal-checkin {
    margin: 0;
  }
  .journal-workout-focus {
    padding: 16px;
    margin-bottom: 16px;
  }
  .journal-workout-focus h2 {
    font-size: 26px;
  }
  .journal-section {
    padding: 16px 0;
  }
  .journal-section h2 {
    font-size: 20px;
  }
  .journal-plan-aside {
    display: block;
  }
  .journal-plan-aside .journal-section {
    padding-top: 16px;
    border-top: 1px solid var(--line);
  }
  .journal-calendar {
    padding: 18px 12px;
  }
  .journal-calendar-head {
    gap: 12px;
    flex-wrap: wrap;
    padding-inline: 4px;
  }
  .journal-calendar-head .field {
    max-width: 140px;
  }
  .journal-calendar-head > div {
    order: 3;
    flex: 0 0 100%;
    margin: 3px 0 0;
  }
  .journal-calendar-head > div b {
    font-size: 15px;
  }
  .journal-calendar-head > .btn {
    margin-left: auto;
  }
  .journal-days {
    gap: 2px;
  }
  .journal-days button {
    padding: 10px 1px;
  }
  .journal-days button > span {
    font-size: 11px;
  }
  .journal-days button > b {
    font-size: 20px;
  }
  .journal-prescription {
    padding: 16px 12px;
  }
  .journal-prescription > .journal-section-top {
    align-items: flex-start;
  }
  .journal-exercise {
    gap: 11px;
  }
  .journal-exercise-group {
    margin-top: 24px;
  }
  .journal-prescription-values {
    gap: 12px 22px;
  }
  .journal-prescription-values dd {
    font-size: 18px;
  }
  .journal-complete-bar {
    align-items: stretch;
    flex-direction: column;
    gap: 12px;
  }
  .journal-meal header {
    padding: 12px;
  }
  .journal-meal > div {
    padding: 0 12px;
  }
  .journal-meal footer {
    padding: 8px 12px;
  }
  .journal-meal h3 {
    font-size: 17px;
  }
  .journal-meal header > span:last-child {
    font-size: 12px;
  }
  .journal-trend {
    padding: 16px 12px;
  }
  .journal-trend-summary {
    gap: 12px;
  }
  .journal-trend-summary b {
    font-size: 14px;
  }
  .journal-subnav {
    gap: 22px;
    margin-bottom: 16px;
  }
  .journal-checkin-invite {
    align-items: stretch;
    flex-direction: column;
    padding: 16px;
  }
  .journal-checkin-form {
    padding: 16px 12px;
  }
  .journal-checkin-form .chip {
    padding: 10px 12px;
  }
  .journal-appointment {
    grid-template-columns: 58px 1fr;
    gap: 15px;
  }
  .journal-appointment .journal-section-top {
    gap: 12px;
    flex-wrap: wrap;
  }
  .journal-appointment-date b {
    font-size: 28px;
  }
  .journal-appointment-date span {
    font-size: 11px;
  }
  .journal-account-grid {
    gap: 22px;
  }
  .journal-account-links button {
    padding: 12px;
    gap: 13px;
  }
  .journal-profile-form .grid2 {
    grid-template-columns: 1fr;
  }
  .journal-measurement-list .journal-facts {
    grid-template-columns: 1fr;
  }
  .journal-measurement-list summary {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }
  .journal-photo-workspace .shots {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .journal-payment-summary {
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 16px;
  }
  .journal-receipts summary {
    grid-template-columns: 1fr auto;
    gap: 12px;
  }
  .journal-receipts summary > div:nth-child(2) {
    grid-column: 1;
    grid-row: 2;
  }
  .journal-receipts summary > .tag {
    grid-column: 2;
    grid-row: 1;
  }
  .entry {
    display: block;
  }
  .entry-context {
    position: relative;
    height: auto;
    padding: 12px 16px;
    background: var(--card);
    border-bottom: 1px solid var(--line);
    display: block;
  }
  .entry-context > div,
  .entry-journey,
  .entry-context .built {
    display: none;
  }
  .entry-logo img {
    width: 125px;
    max-height: 55px;
  }
  .entry-main {
    padding: 16px 16px 28px;
  }
  .entry-content {
    width: 100%;
    margin: 0;
    max-width: 560px;
  }
  .entry .home-link {
    margin: 0 0 22px;
    font-size: 14px;
  }
  .entry h1 {
    font-size: 26px;
  }
  .entry .grid2 {
    gap: 0 16px;
  }
  .entry-progress {
    gap: 10px;
  }
  .entry-progress li {
    font-size: 11px;
  }
  .entry-actions > .btn.primary {
    flex: 1;
  }
  .journal-signing-steps {
    gap: 10px;
  }
  .journal-signing-steps li {
    display: block;
    padding: 0;
  }
  .journal-signing-steps li > span {
    margin-bottom: 10px;
  }
  .journal-signing-steps b {
    font-size: 12px;
  }
  .journal-signing-steps small {
    font-size: 11px;
  }
  .journal-document {
    padding: 16px;
  }
  .journal-document > .journal-section-top {
    align-items: flex-start;
    flex-direction: column;
  }
  .journal-document .document-copy {
    font-size: 14px;
  }
  .journal-app .card {
    padding: 14px;
  }
  .journal-app .built {
    font-family: var(--f-body);
    letter-spacing: 0;
    font-size: 12px;
  }
}
@media (max-width: 360px) {
  .journal-main {
    padding-inline: 15px;
  }
  .entry-main {
    padding-inline: 20px;
  }
  .entry .grid2 {
    grid-template-columns: 1fr;
  }
  .journal-latest {
    gap: 22px;
  }
  .journal-trend-summary {
    gap: 13px;
  }
  .journal-reading b {
    font-size: 26px;
  }
  .journal-days button > b {
    font-size: 18px;
  }
  .journal-days button > span {
    font-size: 10px;
  }
}
@media print {
  .journal-rail,
  .journal-header,
  .journal-bottom,
  .journal-subnav,
  .entry-context,
  .journal-app .btn,
  .journal-app .card-lnk {
    display: none !important;
  }
  .journal-shell,
  .journal-home-grid,
  .journal-plan-layout,
  .journal-progress-layout,
  .journal-profile-grid,
  .journal-signing-layout {
    display: block;
  }
  .journal-main {
    padding: 0;
    max-width: none;
  }
  .journal-app {
    background: white;
    color: black;
  }
  .journal-section,
  .journal-prescription,
  .journal-document {
    break-inside: avoid;
  }
  .journal-app .card {
    box-shadow: none;
  }
}

.journal-bottom:not(:has(button:not([hidden]))) {
  display: none;
}

.entry-mobile-footer {
  display: none;
}
@media (max-width: 900px) {
  .entry-mobile-footer {
    display: block;
    margin-top: 36px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
  }
}
/* Reflow for the few retained media/form primitives. */
.journal-checkin-form fieldset {
  min-inline-size: 0;
  max-width: 100%;
}
.journal-checkin-form legend {
  max-width: 100%;
  white-space: normal;
}
.journal-checkin-form .chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.journal-photo-workspace > *,
.journal-photo-workspace .card {
  min-width: 0;
  max-width: 100%;
}
.journal-photo-workspace .card-hd {
  flex-wrap: wrap;
  gap: 10px;
}
.journal-photo-workspace .card-t {
  font-family: var(--f-body);
  letter-spacing: 0;
  text-transform: none;
  white-space: normal;
}
.journal-photo-workspace .shot figcaption,
.journal-photo-workspace .shot .by {
  font-family: var(--f-body);
  text-transform: none;
  letter-spacing: 0;
}
.journal-rail-bottom .built {
  font-family: var(--f-body);
  letter-spacing: 0;
  font-size: 11px;
  line-height: 1.5;
  margin-top: 18px;
}
.journal-rail-bottom .built a {
  font-family: var(--f-body);
}
.journal-photo-tools .chips {
  flex-wrap: wrap;
}

.boot-logo {
  display: block;
  max-width: 160px;
  height: 56px;
  object-fit: contain;
  margin: 0 auto 22px;
}

/* Independent UI review: readable task context on narrow phones. */
.journal-profile-summary > div { min-width: 0; overflow-wrap: anywhere; }
.journal-profile-summary button, .photo-upload-help { max-width: 100%; white-space: normal; }
.photo-upload-help { margin-top: 12px; }
.photo-upload-help summary, .signing-checklist summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; }
.journal-today > .journal-pagehead { margin-bottom: 24px; }
.journal-today > .journal-start-guide { margin-bottom: 24px; }
.journal-start-guide .card-hd { align-items: center; flex-wrap: wrap; gap: 12px; }
.journal-start-guide .card-hd h2 { font-size: 18px; }
.journal-start-guide > p { max-width: 68ch; color: var(--ink-2); }
.journal-next-session {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  padding: 24px;
  margin-bottom: 24px;
  border: 1px solid var(--line);
  background: var(--card);
  border-radius: 12px;
}
.journal-session-summary { flex: 1; min-width: 0; }
.journal-session-summary > .journal-section-top { justify-content: flex-start; flex-wrap: wrap; gap: 10px 16px; margin-bottom: 14px; }
.journal-session-summary h2 { font-size: 18px; }
.journal-session-summary > p { max-width: 68ch; color: var(--ink-2); font-size: 14px; margin: 0; }
.journal-session-details { display: flex; flex-wrap: wrap; gap: 12px 32px; margin: 0; }
.journal-session-details > div { min-width: 0; max-width: 100%; }
.journal-session-details dt { color: var(--ink-2); font-size: 12px; margin-bottom: 3px; }
.journal-session-details dd { margin: 0; font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.journal-session-request { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px 20px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.journal-session-request > span { color: var(--warn); font-size: 12px; }
.journal-session-request p { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 0; font-size: 13px; line-height: 1.5; }
.journal-session-request p > span { color: var(--ink-2); }
.journal-next-session > .btn { flex-shrink: 0; }
.journal-today .journal-workout-focus { padding: 24px; margin-bottom: 24px; }
.journal-today .journal-workout-focus h2 { font-size: 26px; margin-bottom: 12px; }
.journal-today .journal-workout-focus > p { max-width: 66ch; }
.journal-today .journal-exercise-preview { margin-block: 20px; }
.journal-today .journal-checkin { padding: 20px; }
.journal-today .journal-checkin .tag { margin-bottom: 12px; }
.journal-today .journal-checkin h2 { margin-bottom: 12px; }
.journal-today .journal-home-grid { gap: 24px; }
.journal-selected-metric { flex-basis: 100%; margin: 0; overflow-wrap: anywhere; }
.journal-calendar-head > div { min-width: 0; overflow-wrap: anywhere; }
.attendance-pending { grid-column: 1 / -1; }
@media (max-width: 600px) {
  .journal-trend .journal-section-top > .field, .journal-calendar-head > .field { width: 100%; flex-basis: 100%; min-width: 0; }
  .journal-trend select, .journal-calendar-head select { width: 100%; min-width: 0; max-width: 100%; }
  .journal-signing .journal-pagehead { margin-bottom: 16px; }
  .journal-signing-layout { display: flex; flex-direction: column; gap: 16px; }
  .journal-signing-layout > article { order: 0; }
  .journal-signing-layout > aside { order: 1; }
}

.journal-meal-top-summary { margin:0 0 20px; padding:16px; border:1px solid var(--line); border-radius:12px; }
.journal-meal-top-summary .journal-nutrition-summary { padding:12px 0 0; }
.journal-meal-top-summary .journal-nutrition-summary dl { display:flex; flex-wrap:wrap; gap:16px; }
.entry-history { margin-block:24px; } .entry-history summary { cursor:pointer; min-height:44px; }

/* Onboarding: visible progress, one readable form and one signing action. */
.onboarding-workspace { max-width:1120px;margin-inline:auto; }
.onboarding-welcome { margin-bottom:24px;max-width:65ch; }
.onboarding-welcome h1 { margin-bottom:10px; }
.onboarding-welcome > p:last-child { color:var(--ink-2);margin-bottom:0; }
.onboarding-progress { padding:20px 24px;margin-bottom:24px;background:var(--card);border:1px solid var(--line);border-radius:12px; }
.onboarding-progress > div { display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.875rem; }
.onboarding-progress > div > span { color:var(--ink-3); }
.onboarding-progress progress { appearance:none;width:100%;height:5px;border:0;border-radius:4px;overflow:hidden;display:block;margin:14px 0 20px;background:var(--band);accent-color:var(--gold-dp); }
.onboarding-progress progress::-webkit-progress-bar { background:var(--band); }
.onboarding-progress progress::-webkit-progress-value { background:var(--gold-dp); }
.onboarding-progress progress::-moz-progress-bar { background:var(--gold-dp); }
.onboarding-steps { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;list-style:none;margin:0;padding:0; }
.onboarding-steps li { display:flex;gap:10px;align-items:center;min-width:0; }
.onboarding-steps li > span { display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border:1px solid var(--line);border-radius:50%;color:var(--ink-3);font-size:.8125rem; }
.onboarding-steps b { font-size:.875rem;font-weight:500; }
.onboarding-steps small { display:block;color:var(--ink-3);margin-top:3px;font-size:.75rem; }
.onboarding-steps [aria-current=step] > span { background:var(--gold-wash);border-color:var(--gold-dp);color:var(--gold-dp);font-weight:700; }
.onboarding-steps [aria-current=step] b { font-weight:700;color:var(--gold-dp); }
.onboarding-steps [data-complete=true] > span { background:var(--band);color:var(--ink); }
.onboarding-workspace .journal-signing-layout { display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:24px;align-items:start; }
.onboarding-document-heading, #registration-step-title { scroll-margin-top:4rem; }
.onboarding-document-heading { padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:24px; }
.onboarding-document-heading > span { display:block;color:var(--gold-dp);font-size:.8125rem;font-weight:600;margin-bottom:10px; }
.onboarding-document-heading h2 { font-size:1.5rem;margin-bottom:8px; }
.onboarding-document-heading > small { color:var(--ink-3); }
.onboarding-workspace .document-copy { font-size:1rem;line-height:1.85;margin:0;overflow-wrap:anywhere; }
.onboarding-workspace .journal-signature { padding:24px;margin:32px -12px -12px;border:1px solid var(--gold-line);border-radius:8px;background:var(--gold-wash); }
.onboarding-workspace .journal-signature h3 { margin:0 0 8px;font-size:1.125rem; }
.onboarding-workspace .journal-signature > p { color:var(--ink-2);font-size:.875rem; }
.onboarding-workspace .journal-signature .field { display:block; }
.onboarding-workspace .journal-signature .field > span { display:block;margin-bottom:8px;font-size:.875rem;font-weight:600; }
.onboarding-workspace .journal-signature input[name=signature] { width:100%;min-height:48px;background:var(--field); }
.onboarding-workspace .journal-signature .chk { gap:12px;line-height:1.65; }
.onboarding-workspace .journal-signature .chk input { flex:0 0 22px;width:22px;height:22px; }
.onboarding-workspace .journal-signature > button { min-height:48px;width:100%; }
.onboarding-support { padding:20px;background:var(--band-2);border:1px solid var(--line);border-radius:10px; }
.onboarding-support h2 { font-size:1rem;margin:0; }
.onboarding-support .journal-signing-help { margin:12px 0 20px; }
.onboarding-support > p { font-size:.8125rem;color:var(--ink-3);padding-top:16px;border-top:1px solid var(--line); }
.onboarding-support .btn-row { display:flex;flex-direction:column;align-items:stretch; }
@media(max-width:1000px) { .onboarding-workspace .journal-signing-layout { grid-template-columns:minmax(0,1fr); } .onboarding-support .btn-row { flex-direction:row;flex-wrap:wrap; } }
@media(max-width:600px) {
 .onboarding-welcome { margin-bottom:20px; }
 .onboarding-welcome h1 { font-size:1.625rem; }
 .onboarding-progress { padding:16px;margin-bottom:20px; }
 .onboarding-steps { gap:8px; }
 .onboarding-steps li { flex-direction:column;align-items:flex-start;gap:8px; }
 .onboarding-steps b { font-size:.8125rem; }
 .onboarding-steps small { font-size:.6875rem; }
 .onboarding-workspace .journal-document { padding:20px 16px; }
 .onboarding-document-heading h2 { font-size:1.25rem; }
 .onboarding-workspace .journal-signature { margin:24px 0 0;padding:16px; }
 .onboarding-workspace .journal-signing-layout { gap:20px; }
}
.onboarding-support .btn-row > .btn { flex:0 0 auto; }

/* 16 October UI/UX review: keep the prescription above its navigation details. */
.training-compact-nav { display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0 4px; }
.training-compact-nav b { flex:1;font-size:.875rem; }
.training-calendar-disclosure { margin-bottom:16px; }
.training-calendar-disclosure > summary { cursor:pointer;min-height:44px;align-content:center;color:var(--ink-2);font-size:.8125rem; }
.training-calendar-disclosure[open] { padding-bottom:12px;border-bottom:1px solid var(--line); }
.journal-exercise-group.is-empty-phase { margin:6px 0;padding:6px 0; }
.journal-exercise-group.is-empty-phase h3 { display:inline;margin-right:8px;font-size:.75rem; }
.journal-exercise-group.is-empty-phase p { display:inline;font-size:.75rem; }
.effort-help { font-weight:400;font-size:.75rem;text-align:left;margin-top:6px;max-width:24rem; }
.effort-help summary { cursor:pointer;color:var(--ink-2);min-height:32px;align-content:center; }
.effort-help p { line-height:1.5; }
.compact-meal-summary { display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px 20px; }
.compact-meal-summary h2 { font-size:1.25rem;margin:0 0 4px; }
.compact-meal-summary p { font-size:.8125rem;margin:0; }
.compact-macros { display:flex;align-items:center;gap:8px 20px;flex-wrap:wrap; }
.compact-macros b { font-size:1.25rem; }
.compact-macros span { font-size:.8125rem; }
.meal-anchors { display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 20px; }
.journal-meal h3 { scroll-margin-top:100px; }
.progress-section-select { display:none; }
@media(max-width:700px) {
 .progress-section-select { display:block;margin:0 0 20px; }
 .progress-section-select + .journal-subnav { display:none; }
 .training-compact-nav { gap:6px; }
 .training-compact-nav .btn { min-width:44px;padding:8px; }
 .training-compact-nav b { font-size:.8125rem;min-width:100px; }
 .compact-meal-summary { padding:16px;gap:12px; }
 .compact-meal-summary h2 { font-size:1.125rem; }
}


/* Compact journal workbench: labels and values stay in one row; a full record
   opens only when requested. Reading text and interactive targets stay legible. */
@media (min-width:901px) {
 .journal-header { display:none; }
}
.journal-app .progress-section-select { display:none; }
.journal-pagehead { gap:12px;margin-bottom:16px; }
.journal-pagehead .journal-context { margin-bottom:4px;font-size:13px; }
.journal-pagehead h1 { margin-bottom:6px; }
.journal-pagehead p { max-width:72ch;font-size:14px;line-height:1.45; }
.journal-section-top { gap:12px;margin-bottom:10px; }
.journal-subnav { gap:16px;margin-bottom:16px; }
.journal-subnav button { padding:8px 0;min-height:44px; }
.journal-workout-focus h2 { font-size:22px;max-width:none; }
.journal-home-grid { grid-template-columns:minmax(0,1fr) minmax(240px,.4fr); }
.journal-exercise-preview { margin:12px 0; }
.journal-latest { gap:20px; }
.journal-latest b { font-size:24px;margin:2px 0; }
.journal-exercise-group { margin-top:16px; }
.journal-exercise-group > h3 { padding-bottom:8px; }
.journal-prescription-values { gap:8px 20px;margin:8px 0; }
.journal-prescription-values dd { font-size:18px;margin-top:0; }
.journal-list-row { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px; }
.journal-list-row small { grid-column:1/-1; }
.journal-list-row > span { margin:0; }
.journal-app .field { margin-bottom:12px; }
.journal-app .field > span,.journal-app .field > label { margin-bottom:4px; }
.journal-profile-summary { gap:12px; }
.journal-profile-summary .photo-upload-help { margin-top:0; }
.journal-profile-form legend { font-size:18px;margin-bottom:12px; }
.journal-profile-form .grid2 { gap:0 12px; }
.journal-profile-form .journal-emergency-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px; }
.journal-profile-form .journal-emergency-grid .field:first-child { grid-column:1/-1; }
.journal-account-links { margin-bottom:0; }
.journal-account-links button small { margin-top:2px; }
.journal-payment-summary { gap:16px;padding:16px; }
.journal-payment-summary strong { font-size:26px; }
.journal-payment-summary span { margin-bottom:4px; }
.journal-payment-summary p { margin-top:6px; }
.journal-measurement-list summary { min-height:48px;padding-block:8px; }
.journal-measurement-list summary > span { gap:8px;flex-wrap:wrap; }
.journal-measurement-list .journal-facts { gap:0 16px; }
.journal-metric-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px; }
.journal-metric { min-width:0;background:var(--card);border:1px solid var(--line);border-radius:8px; }
.journal-metric > summary { display:flex;align-items:center;gap:10px;min-height:60px;padding:8px 12px;cursor:pointer;list-style:none; }
.journal-metric > summary::-webkit-details-marker,.journal-photo-pose > summary::-webkit-details-marker { display:none; }
.journal-metric > summary::after,.journal-photo-pose > summary::after { content:'+';display:grid;place-items:center;align-self:center;flex:0 0 24px;width:24px;height:24px;color:var(--gold-dp);font-size:22px;line-height:1; }
.journal-metric[open] > summary::after,.journal-photo-pose[open] > summary::after { content:'−'; }
.journal-metric-label { flex:1;min-width:0;font-size:14px;font-weight:600;line-height:1.3; }
.journal-metric-label > small { display:block;margin-top:3px;color:var(--ink-2);font-size:12px;font-weight:400; }
.journal-metric-value { flex-shrink:0;line-height:1.3;text-align:right; }
.journal-metric-value > b { font-size:20px; }
.journal-metric-value > small { font-size:12px;color:var(--ink-2); }
.journal-metric[open] { grid-column:1/-1; }
.journal-metric-content { padding:12px;border-top:1px solid var(--line); }
.journal-metric-context { display:flex;gap:12px 24px;flex-wrap:wrap;font-size:12px;color:var(--ink-2);margin-bottom:8px; }
.journal-metric-context b { display:block;font-size:14px;color:var(--ink); }
.journal-metric-chart { overflow-x:auto; }
.journal-metric-chart svg.chart { display:block;min-width:540px; }
.journal-metric-group { margin-block:16px; }
.journal-metric-group > h3 { font-size:15px;margin-bottom:8px; }
.journal-record-archive { margin-top:16px;border-top:1px solid var(--line); }
.journal-record-archive > summary { display:flex;align-items:center;min-height:44px;cursor:pointer;color:var(--gold-dp);font-size:14px;font-weight:600; }
.journal-progress-overview { min-width:0; }
.journal-progress-overview .journal-metric-grid { grid-template-columns:1fr; }
.journal-daily-targets { padding:12px 16px;border:1px solid var(--line);border-radius:8px;margin-bottom:12px; }
.journal-daily-targets h2 { font-size:16px;margin:0 0 8px; }
.journal-daily-targets dl { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 8px; }
.journal-daily-targets dt { color:var(--ink-2);font-size:12px; }
.journal-daily-targets dd { font-size:19px;font-weight:600;margin:0; }
.journal-daily-targets small { font-size:12px;font-weight:400; }
.journal-daily-targets p { margin:0;font-size:12px; }
.journal-photo-upload.card { margin-bottom:12px;padding:0 14px; }
.journal-photo-upload > summary { display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:52px;cursor:pointer;flex-wrap:wrap;padding-block:6px; }
.journal-photo-upload-body { display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:8px 0 12px;border-top:1px solid var(--line); }
.journal-photo-upload-body .chips { display:flex;gap:6px;flex-wrap:wrap; }
.journal-photo-upload-body p { margin-bottom:6px; }
.journal-photo-upload-body .btn { margin-bottom:8px; }
.journal-photo-recovery { margin-bottom:12px; }
.journal-photo-poses { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }
.journal-photo-pose { border:1px solid var(--line);border-radius:8px;min-width:0;background:var(--card); }
.journal-photo-pose > summary { display:flex;align-items:center;gap:12px;min-height:84px;padding:8px 12px;cursor:pointer;list-style:none; }
.journal-photo-pose > summary > img,.journal-photo-pose > summary > svg { width:48px;height:64px;object-fit:cover;border-radius:4px;flex-shrink:0; }
.journal-photo-pose > summary > span { flex:1;min-width:0; }
.journal-photo-pose > summary b { display:block;font-size:15px; }
.journal-photo-pose > summary small { display:block;font-size:12px;color:var(--ink-2); }
.journal-photo-pose[open] { grid-column:1/-1; }
.journal-photo-pose-body { padding:12px;border-top:1px solid var(--line); }
.journal-photo-pose-body .shots { display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;max-width:100%;margin-top:10px; }
.journal-photo-pose-body .shot { margin:0; }
.journal-photo-comparison.card { margin-bottom:12px;padding:14px; }
.journal-photo-comparison .compare { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }
.journal-photo-comparison figure { min-width:0;margin:0; }
.journal-photo-comparison .compare img,.journal-photo-comparison .compare svg { width:100%;height:clamp(160px,32vw,360px);object-fit:contain;background:var(--band-2); }
.journal-photo-comparison figcaption { font-size:12px; }
.journal-photo-comparison .card-hd { display:flex;align-items:center;justify-content:space-between;gap:8px; }
.journal-photo-comparison h3 { margin:0; }
.onboarding-welcome { margin-bottom:16px; }
.onboarding-progress { padding:12px 16px;margin-bottom:16px; }
.onboarding-progress progress { margin:8px 0 12px; }
.onboarding-document-heading { padding-bottom:12px;margin-bottom:16px; }
.onboarding-document-heading > span { margin-bottom:6px; }
.onboarding-workspace .document-copy { line-height:1.65; }
.onboarding-workspace .journal-signature { padding:16px;margin:20px 0 0; }
.entry-context h2 { font-size:36px;margin-bottom:16px; }
.entry-context { gap:24px; }
.entry-main { align-items:flex-start; }
.entry .entry-intro { margin-bottom:16px !important; }
.entry-progress { margin:12px 0 16px; }
.entry-progress li span { width:24px;height:24px;margin-bottom:4px; }
.entry .home-link { margin:0; }
.entry-help { margin-top:16px;padding-top:12px; }
.entry-status { margin:16px 0; }
.entry-status li { padding:10px 0; }
@media(min-width:1200px) {
 .journal-measurement-current .journal-metric-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:1000px) {
 .journal-home-grid { grid-template-columns:1fr; }
}
@media(max-width:700px) {
 .journal-app .progress-section-select { display:block;margin-bottom:12px; }
 .progress-section-select + .journal-subnav { display:none; }
 .journal-header { padding-inline:12px; }
 .journal-bottom { padding:4px 4px calc(4px + env(safe-area-inset-bottom)); }
 .journal-bottom button { gap:3px;min-height:48px;padding:4px 2px; }
 .journal-pagehead h1 { font-size:24px; }
 .journal-pagehead { margin-bottom:12px; }
 .journal-profile-form .grid2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .journal-plan-layout,.journal-profile-grid,.journal-progress-layout,.journal-account-grid { gap:16px; }
 .journal-metric-grid { grid-template-columns:1fr; }
 .journal-metric > summary { min-height:56px;padding:7px 10px; }
 .journal-metric-label > small { margin-top:2px; }
 .journal-measurement-list summary { flex-direction:row;align-items:center;flex-wrap:wrap;gap:4px 12px; }
 .journal-measurement-list summary > span { gap:6px; }
 .journal-photo-pose > summary { padding:8px;gap:8px; }
 .journal-photo-pose > summary > img,.journal-photo-pose > summary > svg { width:36px;height:48px; }
 .journal-photo-pose > summary::after { width:20px;flex-basis:20px; }
 .journal-photo-upload-body { grid-template-columns:1fr; }
 .journal-photo-upload > summary .tag { font-size:11px;padding:3px 6px; }
 .journal-daily-targets { padding:10px 12px; }
 .journal-daily-targets dl { gap:6px; }
 .journal-daily-targets dd { font-size:17px; }
 .journal-daily-targets dt { font-size:11px; }
 .journal-daily-targets dd small { display:block; }
 .journal-payment-summary { grid-template-columns:1fr;gap:14px; }
 .journal-payment-summary strong { font-size:24px; }
 .entry-context { padding:10px 16px; }
 .entry-logo img { width:110px;max-height:44px; }
 .entry-main { padding:12px 16px 24px; }
 .entry h1 { font-size:26px; }
 .entry-mobile-footer { margin-top:20px;padding-top:12px; }
 .onboarding-progress { padding:12px; }
 .onboarding-steps li { flex-direction:row;align-items:center;gap:6px; }
 .onboarding-steps li > span { flex-basis:24px;width:24px;height:24px; }
 .onboarding-steps small { display:none; }
 .onboarding-steps b { font-size:12px; }
}
@media(max-width:360px) {
 .journal-profile-form .grid2,.journal-profile-form .journal-emergency-grid { grid-template-columns:1fr; }
 .journal-photo-poses { grid-template-columns:1fr; }
 .journal-metric-value > b { font-size:18px; }
}

/* Meal portions are the work, so they use the full canvas. Guidance follows
   the plan instead of occupying an otherwise empty desktop side column. */
.journal-nutrition-layout { grid-template-columns:1fr; }
.journal-nutrition-layout .journal-plan-aside { display:grid;grid-template-columns:1fr 1fr;gap:16px; }
.journal-nutrition-layout .journal-plan-aside > .journal-coach-note { padding-top:0;border-top:0; }
.journal-meal-list { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start; }
.journal-meal-list .journal-meal { margin:0; }
.journal-meal > .journal-meal-heading { display:flex;align-items:center;gap:10px;padding:12px;min-height:52px;cursor:pointer;list-style:none; }
.journal-meal > .journal-meal-heading::-webkit-details-marker { display:none; }
.journal-meal > .journal-meal-heading::after { content:'+';font-size:20px;line-height:1;color:var(--gold-dp); }
.journal-meal[open] > .journal-meal-heading { border-bottom:1px solid var(--line); }
.journal-meal[open] > .journal-meal-heading::after { content:'−'; }
.journal-meal-heading h3 { flex:1; }
.journal-meal-heading > span:last-of-type { font-size:12px;white-space:nowrap;color:var(--ink-2); }
.journal-photo-library .shot figcaption,.journal-photo-library .shot .by,.journal-photo-comparison figcaption { font-family:var(--f-body);letter-spacing:0;text-transform:none; }
@media(max-width:700px) {
 .journal-meal-list,.journal-nutrition-layout .journal-plan-aside { grid-template-columns:1fr; }
 .journal-meal > .journal-meal-heading { padding:10px 12px; }
}

.journal-app details > summary { min-height:44px;align-content:center; }
.journal-calendar .journal-days { grid-template-columns:repeat(7,minmax(44px,1fr));overflow-x:auto; }

.journal-meal-list .journal-meal[open] { grid-column:1/-1; }
.journal-meal[open] > div { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px; }
.journal-photo-upload > summary { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px; }
.journal-photo-upload > summary > b { grid-column:1; }
.journal-photo-upload > summary > .tag { grid-column:1;justify-self:start; }
.journal-photo-upload > summary::after { grid-column:2;grid-row:1/3; }
@media(max-width:700px) {
 .journal-meal[open] > div { grid-template-columns:1fr; }
}

/* The signing flow has no active app navigation. Give it a focused document
   canvas instead of an empty rail and profile shortcuts that lead back here. */
.journal-shell:has(.onboarding-workspace) { display:block; }
.journal-shell:has(.onboarding-workspace) .journal-rail { display:none; }
.journal-shell:has(.onboarding-workspace) .journal-header { display:flex; }
.journal-shell:has(.onboarding-workspace) .journal-mobile-logo { display:block;width:110px;max-height:44px;object-fit:contain; }
.journal-shell:has(.onboarding-workspace) .journal-header .journal-person { display:none; }

@media (max-width: 700px) {
  .journal-next-session { flex-direction: column; align-items: stretch; gap: 20px; padding: 20px; }
  .journal-session-request { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .journal-session-details { gap: 12px 24px; }
  .journal-today .journal-workout-focus { padding: 20px; }
  .journal-today .journal-workout-focus h2 { font-size: 24px; }
  .journal-today > .journal-pagehead { margin-bottom: 20px; }
  .journal-today .journal-home-grid { gap: 20px; }
  .journal-account-panel > h2 { padding: 16px 16px 6px; }
  .journal-account-links button { min-height: 76px; padding: 14px 16px; }
  .journal-account-panel.journal-account-package,
  .journal-coach-note.journal-account-support { padding: 20px; }
  .journal-account-package > h2 { padding: 0; }
  .journal-account-session { flex-wrap: wrap; gap: 8px; }
  .journal-account-session > p { flex: 1 1 180px; }
}
@media (max-width: 600px) {
  .journal-header-actions { gap: 4px; }
  .journal-header .journal-person { padding: 6px; }
  .journal-header .journal-person > span { display: none; }
  .journal-header .journal-person .avatar { width: 32px; height: 32px; }
  .journal-header-sessions { padding-inline: 10px; gap: 6px; }
  .journal-mobile-logo { max-width: 104px; }
}

@media(max-width:700px) {
 .onboarding-steps [data-complete=true] small { display:block;font-size:11px;line-height:1.3; }
}
@media(max-width:360px) {
 /* Step x of y and the progress bar already state the position; keep the
    narrow step labels and completed-status text clear without extra circles. */
 .onboarding-steps li > span { display:none; }
}

/* Keep target labels and values readable on narrow phones. */
@media(max-width:420px){.journal-daily-targets dl{grid-template-columns:repeat(2,minmax(0,1fr))}}
