/* One shared visual language for online pages, portals and public offline readers.
   No network font, image, layout animation or private cache is required. */
:root,
.neo-app,
.neo-app .fitness-workspace,
.neo-app .wellbeing-offline {
  color-scheme: light;
  --neo-ink: #30291f;
  --neo-cream: #f5ecd9;
  --neo-paper: #fff8e9;
  --neo-clay: #d98a68;
  --neo-olive: #62683c;
  --neo-saffron: #ebc352;
  --radius: 8px;
  --background: var(--neo-cream);
  --foreground: var(--neo-ink);
  --surface: var(--neo-paper);
  --surface-muted: #eaddc5;
  --card: var(--neo-paper);
  --card-foreground: var(--neo-ink);
  --popover: var(--neo-paper);
  --popover-foreground: var(--neo-ink);
  --primary: var(--neo-olive);
  --primary-foreground: var(--neo-paper);
  --primary-soft: #e4e2c8;
  --secondary: var(--neo-saffron);
  --secondary-foreground: var(--neo-ink);
  --accent: var(--neo-saffron);
  --accent-foreground: var(--neo-ink);
  --muted: #ebdfc9;
  --muted-foreground: #6b5e4a;
  --border: #b5a894;
  --input: #756a55;
  --ring: var(--neo-ink);
  --sage-dark: var(--neo-ink);
  --terracotta: var(--neo-clay);
  --destructive: #a7352b;
  --destructive-foreground: #fff8e9;
  --success: #62683c;
  --success-foreground: #fff8e9;
  --info: #595e36;
  --info-foreground: #fff8e9;
  --warning: #ebc352;
  --warning-foreground: #30291f;
  --sidebar: #fff8e9;
  --sidebar-foreground: #30291f;
  --sidebar-muted-foreground: #6b5e4a;
  --sidebar-primary: #62683c;
  --sidebar-primary-foreground: #fff8e9;
  --sidebar-accent: #ebc352;
  --sidebar-accent-foreground: #30291f;
  --sidebar-border: #30291f;
  --sidebar-ring: #30291f;
  background: var(--background);
  color: var(--foreground);
}
.neo-app {
  margin: 0;
  font-family: Arial, Helvetica, system-ui, sans-serif;
}
.neo-app h1,
.neo-app h2,
.neo-app h3,
.neo-app .font-display {
  font-family: Arial, Helvetica, system-ui, sans-serif;
  font-weight: 800;
  letter-spacing: -0.035em;
  text-wrap: balance;
}
.neo-app main > h1 {
  font-size: clamp(30px, 5vw, 40px);
  line-height: 1.1;
  margin-bottom: 24px;
}
.neo-app .client-chat-viewport h1 {
  font-size: 18px;
  letter-spacing: -0.025em;
}
.neo-app .fitness-workspace .glass-chrome,
.neo-app .neo-staff > div > header {
  background: var(--neo-cream);
  border-bottom: 3px solid var(--neo-ink);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.neo-app :is([data-slot="card"], .card-elev, .today-context, .fitness-progress, .empty-state) {
  background: var(--neo-paper);
  color: var(--neo-ink);
  border: 2px solid var(--neo-ink);
  border-radius: 8px;
  box-shadow: 4px 4px 0 var(--neo-ink);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.neo-app .fitness-workspace :is(.card-elev, .today-context, .fitness-progress) {
  background: var(--neo-paper);
  border: 2px solid var(--neo-ink);
  border-radius: 8px;
  box-shadow: 4px 4px 0 var(--neo-ink);
  backdrop-filter: none;
}
.neo-app [data-slot="button"] {
  border-radius: 6px;
  font-weight: 700;
  min-height: 44px;
}
.neo-app
  [data-slot="button"]:is(
    [data-variant="default"],
    [data-variant="secondary"],
    [data-variant="outline"],
    [data-variant="destructive"]
  ) {
  border: 2px solid var(--neo-ink);
  box-shadow: 2px 2px 0 var(--neo-ink);
}
.neo-app [data-slot="button"][data-variant="default"] {
  background: var(--neo-olive);
  color: var(--neo-paper);
}
.neo-app [data-slot="button"][data-variant="secondary"] {
  background: var(--neo-saffron);
  color: var(--neo-ink);
}
.neo-app [data-slot="button"][data-variant="outline"] {
  background: var(--neo-paper);
  color: var(--neo-ink);
}
.neo-app [data-slot="button"][data-variant="destructive"] {
  background: var(--destructive);
  color: var(--destructive-foreground);
}
.neo-app [data-slot="button"]:active:not(:disabled) {
  box-shadow: none;
}
.neo-app
  :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not(
        [hidden]
      ),
    textarea,
    select
  ) {
  color: var(--neo-ink);
  background-color: var(--neo-paper);
  border: 2px solid var(--input);
  border-radius: 6px;
}
.neo-app .fitness-workspace :is(input, textarea) {
  background-color: var(--neo-paper);
}
.neo-app :is(a, button, input, textarea, select, summary, [tabindex="0"]):focus-visible {
  outline: 3px solid var(--neo-ink);
  outline-offset: 3px;
}
.neo-app [role="dialog"] {
  background: var(--neo-paper);
  color: var(--neo-ink);
  border: 3px solid var(--neo-ink);
  box-shadow: 6px 6px 0 var(--neo-ink);
  border-radius: 8px;
}
.neo-app .community-dialog {
  background: var(--neo-paper) !important;
  border-radius: 8px !important;
}
.neo-app [role="tablist"] {
  background: var(--muted);
  border: 2px solid var(--neo-ink);
  border-radius: 6px;
}
.neo-app [role="tab"] {
  min-height: 44px;
  border-radius: 4px;
  font-weight: 700;
}
.neo-app [role="tab"][data-state="active"] {
  background: var(--neo-saffron);
  color: var(--neo-ink);
  box-shadow: none;
}
.neo-app table thead {
  background: var(--neo-saffron);
  color: var(--neo-ink);
}
.neo-app table th {
  color: var(--neo-ink);
  font-weight: 750;
}
.neo-app [data-sidebar="sidebar"] {
  border-right: 3px solid var(--neo-ink);
  background: var(--neo-paper);
}
.neo-app [data-sidebar="menu-button"] {
  min-height: 44px;
  border: 2px solid transparent;
  font-weight: 600;
}
.neo-app [data-sidebar="menu-button"][data-active="true"] {
  background: var(--neo-clay);
  color: var(--neo-ink);
  border-color: var(--neo-ink);
  box-shadow: 2px 2px 0 var(--neo-ink);
}
.neo-app [data-sidebar="group-label"] {
  color: var(--muted-foreground);
  font-weight: 700;
}
.neo-app .fitness-nav {
  --primary: var(--neo-ink);
  --primary-soft: var(--neo-saffron);
  --muted-foreground: var(--neo-ink);
  background: transparent;
}
.neo-app .fitness-nav .glass-dock {
  background: #fff8e9f2;
  border: 3px solid var(--neo-ink);
  box-shadow: 4px 4px 0 var(--neo-ink);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.neo-app .pause-header-button {
  color: var(--neo-ink);
  background: var(--neo-clay);
  border: 2px solid var(--neo-ink);
  border-radius: 6px;
  box-shadow: 2px 2px 0 var(--neo-ink);
}
.neo-app .tool-row {
  background: var(--neo-paper);
  border: 2px solid var(--neo-ink);
  border-radius: 8px;
  box-shadow: 3px 3px 0 var(--neo-ink);
}
.neo-app .tool-row:hover {
  background: var(--neo-cream);
}
.neo-app .tool-icon {
  color: var(--neo-ink);
  border: 2px solid var(--neo-ink);
  border-radius: 6px;
  background: var(--neo-saffron);
}
.neo-app .tool-icon-green {
  background: var(--primary-soft);
}
.neo-app .tool-icon-coral {
  background: var(--neo-clay);
}
.neo-app .tool-icon-blue,
.neo-app .tool-icon-paper {
  background: var(--neo-saffron);
}
.neo-app .tool-copy strong {
  font-weight: 800;
  color: var(--neo-ink);
}
.neo-app .tool-copy > span {
  color: var(--muted-foreground);
}
.neo-app .community-mark {
  background: var(--neo-saffron);
  color: var(--neo-ink);
  border: 2px solid var(--neo-ink);
  border-radius: 6px;
}
.neo-app :is(.wall-composer, .wall-post, .wall-empty, .wall-notice, .wall-post-menu > div) {
  background: var(--neo-paper);
  border: 2px solid var(--neo-ink);
  border-radius: 8px;
  box-shadow: 3px 3px 0 var(--neo-ink);
}
.neo-app .wall-compose-trigger {
  background: var(--neo-cream);
  color: var(--muted-foreground);
  border: 1px solid var(--input);
  border-radius: 6px;
}
.neo-app .wall-create {
  background: var(--neo-clay);
  color: var(--neo-ink);
  border: 2px solid var(--neo-ink);
  border-radius: 6px;
}
.neo-app .wall-avatar {
  color: var(--neo-ink);
  background: var(--neo-saffron);
  border: 2px solid var(--neo-ink);
  border-radius: 8px;
}
.neo-app .avatar-anonymous {
  background: var(--muted);
}
.neo-app .wall-post-footer {
  border-top: 2px solid var(--neo-ink);
}
.neo-app .wall-thank {
  color: var(--neo-ink);
}
.neo-app .wall-thank[aria-pressed="true"] {
  background: var(--neo-clay);
  color: var(--neo-ink);
}
.neo-app .wall-anonymous {
  background: var(--neo-cream);
  border: 1px solid var(--border);
}
.neo-app .wall-toolbar > div button[aria-pressed="true"] {
  background: var(--neo-saffron);
  color: var(--neo-ink);
  border: 2px solid var(--neo-ink);
}
.neo-app .notebook-sheet {
  background: var(--neo-paper) !important;
  border: 2px solid var(--neo-ink) !important;
  border-radius: 6px !important;
  box-shadow: 4px 4px 0 var(--neo-ink) !important;
}
.neo-app .notebook-sheet::before {
  background: var(--neo-clay);
}
.neo-app .notebook-writing,
.neo-app .notebook-content,
.neo-app .notebook-sheet textarea {
  background-image: repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent 31px,
    #d6c6a8 31px,
    #d6c6a8 32px
  ) !important;
}
.neo-app .diary-prompts button {
  background: var(--neo-cream);
  color: var(--neo-ink);
  border: 2px solid var(--input);
  border-radius: 6px;
}
.neo-app .diary-prompts button[aria-pressed="true"] {
  background: var(--neo-saffron);
  border-color: var(--neo-ink);
  color: var(--neo-ink);
}
.neo-app
  :is(
    .wellbeing-tracks > button,
    .wellbeing-unlock,
    .wellbeing-journal,
    .micro-exercise,
    .wellbeing-phrase,
    .pause-grounding
  ) {
  background: var(--neo-paper);
  border: 2px solid var(--neo-ink);
  border-radius: 8px;
  box-shadow: 3px 3px 0 var(--neo-ink);
}
.neo-app
  :is(.wellbeing-tracks > button, .mood-options button, .track-toggle button)[aria-pressed="true"] {
  background: var(--neo-saffron);
  color: var(--neo-ink);
  border-color: var(--neo-ink);
}
.neo-app .mood-options button {
  background: var(--neo-paper);
  color: var(--neo-ink);
  border: 2px solid var(--neo-ink);
  border-radius: 6px;
}
.neo-app .wellbeing-button {
  background: var(--neo-olive);
  color: var(--neo-paper);
  border: 2px solid var(--neo-ink);
  border-radius: 6px;
  box-shadow: 2px 2px 0 var(--neo-ink);
}
.neo-app .wellbeing-button.secondary {
  background: var(--neo-paper);
  color: var(--neo-ink);
}
.neo-app .wellbeing-button.sos-action {
  background: var(--neo-clay);
  color: var(--neo-ink);
}
.neo-app .micro-list button {
  background: var(--neo-paper);
  color: var(--neo-ink);
  border-bottom: 2px solid var(--neo-ink);
}
.neo-app .sos-screen {
  background: var(--neo-cream) !important;
}
.neo-app .pause-intro,
.neo-app .breath-core {
  color: var(--neo-ink);
}
.neo-app .breath-orbit {
  background: var(--neo-saffron);
  border: 3px solid var(--neo-ink);
}
.neo-app .breath-orbit::before {
  border: 2px solid var(--neo-ink);
  opacity: 1;
}
.neo-app .pause-grounding li > span {
  background: var(--neo-clay);
  color: var(--neo-ink);
  border: 1px solid var(--neo-ink);
}
.neo-app .box-breathing {
  background: var(--neo-saffron);
  border: 3px solid var(--neo-ink);
  border-radius: 8px;
}
/* Keep chat geometry, keyboard safe areas and retained message instances unchanged. */
.neo-app .fitness-workspace .chat-bubble,
.neo-app .chat-bubble {
  border: 2px solid var(--neo-ink);
  border-radius: 8px;
  box-shadow: 2px 2px 0 var(--neo-ink);
}
.neo-app .fitness-workspace .chat-bubble.bg-primary,
.neo-app .chat-bubble.bg-primary {
  background: #e3dfc0;
  color: var(--neo-ink);
}
.neo-app .fitness-workspace .chat-bubble.bg-card {
  background: var(--neo-paper);
  color: var(--neo-ink);
}
.neo-app .chat-composer {
  background: var(--neo-paper);
  border-top: 3px solid var(--neo-ink);
}
.neo-app .chat-composer > div:has(textarea) {
  background: var(--neo-cream);
  border: 2px solid var(--neo-ink);
  border-radius: 8px;
}
.neo-app .chat-composer textarea {
  border: 0;
  background: transparent;
  box-shadow: none;
}
.neo-app :is(.voice-capture-panel, .voice-error) {
  background: var(--neo-paper);
  border: 2px solid var(--neo-ink);
  border-radius: 8px;
  box-shadow: 3px 3px 0 var(--neo-ink);
}
.neo-app .voice-send {
  background: var(--neo-olive);
  color: var(--neo-paper);
}
.neo-app .neo-offline {
  background: var(--neo-cream);
}
.neo-app.neo-offline :is(form, .bubble) {
  background: var(--neo-paper);
  border: 2px solid var(--neo-ink);
  border-radius: 8px;
  box-shadow: 3px 3px 0 var(--neo-ink);
  backdrop-filter: none;
}
.neo-app.neo-offline .bubble.self {
  background: #e3dfc0;
}
.neo-app.neo-offline :is(a, .meta, footer) {
  color: var(--muted-foreground);
}
.neo-app.neo-offline button {
  background: var(--neo-olive);
  color: var(--neo-paper);
  border: 2px solid var(--neo-ink);
}
@media (max-width: 480px) {
  .neo-app main > h1 {
    font-size: 32px;
  }
  .neo-app .wall-composer {
    padding: 10px;
    gap: 7px;
  }
  .neo-app .fitness-workspace main {
    padding-inline: 16px;
  }
  .neo-app .client-chat-viewport main {
    padding-inline: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .neo-app [role="dialog"] {
    animation: none !important;
  }
}
@media (forced-colors: active) {
  .neo-app
    :is(
      [data-slot="card"],
      [data-slot="button"],
      .card-elev,
      .glass-dock,
      .chat-bubble,
      .wall-post,
      .wall-composer,
      .tool-row,
      .notebook-sheet,
      .wellbeing-button
    ) {
    background: Canvas !important;
    color: CanvasText !important;
    border-color: CanvasText !important;
    box-shadow: none !important;
  }
  .neo-app :is(button, a, input, textarea, select):focus-visible {
    outline-color: Highlight;
  }
}

/* The daily thought is explicitly labelled, not mistaken for dashboard copy. */
.neo-app .neo-dashboard .daily-quote-heading {
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.neo-app .daily-quote-heading h2 {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.025em;
  line-height: 1.25;
  margin: 0;
  padding: 9px 12px;
  background: var(--neo-paper);
  border: 2px solid var(--neo-ink);
  border-radius: 6px;
  box-shadow: 2px 2px 0 var(--neo-ink);
  color: var(--neo-ink);
}
.neo-app .daily-quote-heading h2 svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
.neo-app .neo-dashboard .daily-quote-heading time {
  font-size: 13px;
  font-weight: 650;
  color: var(--neo-ink);
}
@media (max-width: 480px) {
  .neo-app .daily-quote-heading h2 {
    font-size: 16px;
    padding: 8px 10px;
  }
}

.neo-app .auth-panel {
  background: var(--neo-paper);
  border: 3px solid var(--neo-ink);
  border-radius: 8px;
  box-shadow: 5px 5px 0 var(--neo-ink);
}
/* The same compact identity in client headers, authentication and staff navigation. */
.brand-lockup {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  color: var(--foreground, #30291f);
}
.brand-mark {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
}
.brand-wordmark {
  display: flex;
  flex-direction: column;
  line-height: 1;
}
.brand-method {
  font:
    600 10px/1.2 Arial,
    Helvetica,
    sans-serif;
  letter-spacing: 0.06em;
}
.brand-name {
  font:
    800 22px/1.05 Arial,
    Helvetica,
    sans-serif;
  letter-spacing: -0.055em;
}
.brand-dot {
  color: var(--neo-clay);
}
.brand-sm .brand-name {
  font-size: 20px;
}
.brand-lg .brand-name {
  font-size: 34px;
}
.brand-lg .brand-method {
  font-size: 13px;
}
.brand-lg .brand-mark {
  width: 46px;
  height: 46px;
}
.brand-sidebar {
  color: var(--sidebar-foreground);
}
.community-spotlight {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 16px;
  margin-bottom: 22px;
  background: var(--neo-clay);
  border: 2px solid var(--neo-ink);
  border-radius: 8px;
  box-shadow: 3px 3px 0 var(--neo-ink);
  color: var(--neo-ink);
  min-height: 66px;
}
.community-spotlight > span {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.community-spotlight strong {
  font-weight: 800;
  font-size: 17px;
}
.community-spotlight > span > span {
  font-size: 13px;
}
.community-quicklink {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  margin: -8px 0 24px;
  padding: 8px 11px;
  border: 2px solid var(--neo-ink);
  background: var(--neo-saffron);
  border-radius: 6px;
  font-size: 13px;
  font-weight: 700;
  width: fit-content;
  max-width: 100%;
}
.neo-app .community-guide {
  background: var(--neo-saffron);
  color: var(--neo-ink);
  border: 2px solid var(--neo-ink);
  border-radius: 8px;
  box-shadow: 3px 3px 0 var(--neo-ink);
}
.neo-app .community-guide :is(h3, p, strong, svg) {
  color: var(--neo-ink);
}
.community-kind-choice {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.community-kind-choice button {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 9px 12px;
  border: 2px solid var(--neo-ink);
  border-radius: 6px;
  color: var(--neo-ink);
  background: var(--neo-cream);
  font-weight: 700;
}
.community-kind-choice button[aria-pressed="true"] {
  background: var(--neo-saffron);
  box-shadow: 2px 2px 0 var(--neo-ink);
}
.wall-post-kind {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  font-weight: 700;
  margin: 18px 20px -8px;
  color: var(--neo-ink);
}
.neo-app .progress-win {
  background: var(--neo-saffron);
}
.neo-app .progress-goal {
  border-width: 3px;
  background: var(--neo-clay);
}
.mood-history button {
  min-height: 44px;
  border: 2px solid var(--neo-ink);
  border-radius: 6px;
  padding: 8px 10px;
  background: var(--neo-paper);
  font-size: 13px;
  font-weight: 700;
}
.mood-history button[aria-pressed="true"] {
  background: var(--neo-saffron);
}
.mood-bars {
  display: grid;
  gap: 12px;
  list-style: none;
  padding: 0;
}
.mood-bars li {
  display: grid;
  grid-template-columns: 100px minmax(30px, 1fr) 65px;
  align-items: center;
  gap: 10px;
  font-size: 13px;
}
.mood-bar {
  height: 18px;
  border: 1px solid var(--neo-ink);
  background: var(--neo-cream);
  overflow: hidden;
}
.mood-bar > span {
  display: block;
  height: 100%;
  background: var(--neo-olive);
}
.mood-sad > span,
.mood-tense > span {
  background: var(--neo-clay);
}
.mood-grateful > span,
.mood-hopeful > span {
  background: var(--neo-saffron);
}
.mood-timeline {
  display: grid;
  gap: 10px;
  list-style: none;
  margin-top: 10px;
  padding: 0;
}
.mood-timeline li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--border);
  padding: 8px 0;
  font-size: 14px;
}
/* Community hero belongs to the same warm visual system as every other section. */
.neo-app .community-intro {
  background: var(--neo-clay);
  color: var(--neo-ink);
  border: 2px solid var(--neo-ink);
  border-radius: 8px;
  box-shadow: 4px 4px 0 var(--neo-ink);
}
.neo-app .community-intro :is(h2, p) {
  color: var(--neo-ink);
}
.neo-app .fitness-workspace:has(.gratitude-wall) .community-quicklink {
  display: none;
}
.progress-highlights {
  margin-bottom: 24px;
}
.victory-celebration {
  padding: 22px;
  background: var(--neo-saffron);
  border: 3px solid var(--neo-ink);
  box-shadow: 5px 5px 0 var(--neo-ink);
  border-radius: 8px;
  color: var(--neo-ink);
}
.victory-heading {
  display: flex;
  align-items: center;
  gap: 12px;
}
.victory-heading > svg {
  width: 30px;
  height: 30px;
  flex-shrink: 0;
}
.victory-heading > div {
  flex: 1;
}
.victory-heading h2 {
  font-size: clamp(22px, 5vw, 30px);
  font-weight: 850;
  line-height: 1.1;
  letter-spacing: -0.035em;
}
.victory-list {
  margin-top: 20px;
  display: grid;
  gap: 16px;
}
.victory-list > li {
  padding: 16px;
  background: var(--neo-paper);
  border: 2px solid var(--neo-ink);
  border-radius: 6px;
}
.victory-list time {
  font-size: 12px;
}
.victory-list h3 {
  font-size: 20px;
  font-weight: 800;
  margin: 6px 0;
  line-height: 1.25;
}
.victory-list p {
  font-size: 15px;
  line-height: 1.6;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.pause-sound {
  margin: 24px 0 0;
  padding: 16px;
  border: 2px solid var(--neo-ink);
  border-radius: 8px;
  background: var(--neo-paper);
}
.pause-sound button {
  min-height: 44px;
  font-weight: 700;
}
.pause-sound p {
  font-size: 13px;
  line-height: 1.6;
  margin-top: 8px;
}
.chat-coach-badge {
  display: inline-flex;
  padding: 4px 8px;
  background: var(--neo-saffron);
  border: 1px solid var(--neo-ink);
  border-radius: 4px;
  font-weight: 700;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.admin-preview-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 20px 0;
}
.admin-preview-tabs button {
  min-height: 44px;
  padding: 8px 14px;
  border: 2px solid var(--neo-ink);
  border-radius: 6px;
  font-weight: 700;
  background: var(--neo-paper);
}
.admin-preview-tabs button[aria-pressed="true"] {
  background: var(--neo-saffron);
}

/* Composer follows VisualViewport: the keyboard already excludes the device bottom inset. */
.neo-app .client-chat-viewport[data-keyboard-open="true"] .chat-composer {
  padding: 6px 8px;
}
.neo-app .chat-compose-row {
  flex-wrap: nowrap;
  padding: 4px;
}
.neo-app .chat-compose-row > [hidden],
.neo-app .chat-compose-row button[hidden] {
  display: none !important;
}
.neo-app .chat-compose-row textarea {
  padding-inline: 4px;
}
.neo-app .chat-composer:has(.voice-capture-panel) .chat-compose-row {
  min-height: 56px;
}
.neo-app .chat-composer .voice-capture-panel {
  bottom: 8px;
  left: 8px;
  right: 8px;
  min-height: 56px;
  box-shadow: none;
}
.neo-app .chat-composer:has(.voice-capture-panel) .voice-error {
  bottom: 76px;
}
.neo-app .daily-quote-heading h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(24px, 5vw, 32px);
  font-style: italic;
  letter-spacing: -0.035em;
  background: var(--neo-saffron, #edbc51);
  padding: 10px 16px;
}
.neo-app .daily-quote blockquote {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(28px, 5.5vw, 42px);
  line-height: 1.2;
}
.neo-app .journey-goal-title,
.neo-app .progress-goal h3 {
  font-size: clamp(25px, 5vw, 34px);
  font-weight: 800;
  line-height: 1.2;
  color: var(--neo-ink);
}
.neo-app .progress-goal {
  border-left: 7px solid var(--neo-olive, #6b7849);
}
.neo-app .pause-sound {
  margin: 12px 0;
  padding: 12px;
  background: var(--neo-paper);
}
.neo-app .pause-sound button {
  min-height: 44px;
  font-weight: 750;
}
.neo-app .progress-session-heading {
  margin-block: 24px 10px;
  font-size: 17px;
  font-weight: 800;
}

.neo-app .interactive-exercise {
  padding: 16px;
  background: var(--neo-cream);
  border: 2px solid var(--neo-ink);
  border-radius: 8px;
}
.neo-app .interactive-exercise progress {
  accent-color: var(--neo-olive);
  height: 8px;
}
.neo-app .measure-bars {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr);
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  font-size: 13px;
}
.neo-app .measure-bars meter {
  width: 100%;
  height: 16px;
  accent-color: var(--neo-olive);
}

.neo-app .chat-compose-row > div:not([hidden]) > div > button {
  background: var(--neo-olive, #687545);
  color: var(--neo-paper);
  border: 2px solid var(--neo-ink);
}
.neo-app .auth-panel h1 {
  font-size: clamp(30px, 6vw, 42px);
  line-height: 1.12;
  letter-spacing: -0.045em;
  max-width: 14ch;
}

.neo-app .exercise-workspace {
  position: fixed;
  inset: auto 0;
  top: var(--chat-visible-top, 0px);
  height: var(--chat-visible-height, 100dvh);
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
  transform: none;
  translate: none;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  border: 2px solid var(--neo-ink);
  border-radius: 0;
  background: var(--neo-cream);
  box-shadow: none;
  animation: none;
}
.neo-app .exercise-workspace-header {
  flex: none;
  padding: 22px 52px 18px 22px;
  border-bottom: 2px solid var(--neo-ink);
  background: var(--neo-paper);
}
.neo-app .exercise-workspace-header h2 {
  font-size: 24px;
  line-height: 1.15;
  margin: 8px 0;
}
.neo-app .exercise-workspace-body {
  min-height: 0;
  flex: 1;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 20px 22px;
}
.neo-app .exercise-workspace-footer {
  flex: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 18px calc(12px + env(safe-area-inset-bottom));
  border-top: 2px solid var(--neo-ink);
  background: var(--neo-paper);
}
.neo-app .exercise-workspace[data-keyboard-open="true"] .exercise-workspace-footer {
  padding-bottom: 8px;
}
.neo-app .exercise-workspace-footer [role="alert"] {
  width: 100%;
}
.neo-app .practice-category {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
.neo-app .practice-lab {
  padding: 18px;
  background: #e0e3c5;
  border: 2px solid var(--neo-ink);
  border-radius: 8px;
}
.neo-app .practice-lab h3 {
  font-size: 19px;
  line-height: 1.25;
  margin: 12px 0;
}
.neo-app .practice-options {
  display: grid;
  gap: 10px;
}
.neo-app .practice-options button,
.neo-app .fact-workbench button {
  min-height: 44px;
  padding: 12px;
  text-align: left;
  background: var(--neo-paper);
  border: 2px solid var(--neo-ink);
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
}
.neo-app .practice-options button[aria-pressed="true"],
.neo-app .fact-workbench button[aria-pressed="true"] {
  background: var(--neo-olive);
  color: white;
  box-shadow: 2px 2px 0 var(--neo-ink);
}
.neo-app .practice-pause {
  display: grid;
  justify-items: center;
  gap: 16px;
}
.neo-app .practice-orbit {
  width: 150px;
  height: 150px;
  border: 4px solid var(--neo-ink);
  border-radius: 50%;
  background: var(--neo-paper);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.neo-app .practice-orbit span {
  font-size: 48px;
  font-weight: 800;
}
.neo-app .practice-orbit small {
  font-size: 11px;
}
.neo-app .practice-orbit[data-running="true"] {
  border-color: var(--neo-clay);
}
.neo-app .fact-workbench {
  display: grid;
  gap: 16px;
  margin-top: 14px;
}
.neo-app .fact-workbench > div {
  padding-bottom: 14px;
  border-bottom: 1px solid var(--neo-ink);
}
.neo-app .fact-workbench > div > p {
  margin-bottom: 10px;
}
@media (max-width: 480px) {
  .neo-app .exercise-workspace-header {
    padding: 18px 48px 14px 16px;
  }
  .neo-app .exercise-workspace-header h2 {
    font-size: 21px;
  }
  .neo-app .exercise-workspace-body {
    padding: 16px;
  }
  .neo-app .practice-lab {
    padding: 14px;
  }
}

.neo-app .journey-workspace {
  display: grid;
  gap: 26px;
}
.neo-app .journey-direction {
  background: var(--neo-paper);
  border: 3px solid var(--neo-ink);
  border-left: 8px solid var(--neo-olive);
  padding: 24px;
  box-shadow: 5px 5px 0 var(--neo-ink);
}
.neo-app .journey-direction .neo-kicker {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
}
.neo-app .journey-direction h2 {
  font-size: 15px;
  line-height: 1.3;
  margin-top: 18px;
  margin-bottom: 10px;
}
.neo-app .journey-tabs {
  display: flex;
  border-bottom: 2px solid var(--neo-ink);
  gap: 6px;
}
.neo-app .journey-tabs button {
  min-height: 64px;
  flex: 1;
  padding: 10px 4px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  border-bottom: 4px solid transparent;
}
.neo-app .journey-tabs button[aria-selected="true"] {
  border-color: var(--neo-ink);
  background: #e0e3c5;
}
.neo-app .journey-tab-content {
  min-width: 0;
}
.neo-app .journey-tab-content header {
  margin-bottom: 22px;
}
.neo-app .journey-tab-content header h2 {
  font-size: 26px;
  line-height: 1.18;
  max-width: 26ch;
  margin-bottom: 10px;
}
.neo-app .journey-tab-content header p {
  font-size: 14px;
  line-height: 1.6;
  max-width: 50ch;
}
.neo-app .journey-practices,
.neo-app .journey-plan-links {
  display: grid;
  gap: 14px;
  margin-block: 20px;
}
.neo-app :is(.journey-practices, .journey-plan-links) > a {
  display: block;
  position: relative;
  padding: 20px 48px 20px 18px;
  background: var(--neo-paper);
  border: 2px solid var(--neo-ink);
  border-radius: 8px;
  box-shadow: 3px 3px 0 var(--neo-ink);
}
.neo-app :is(.journey-practices, .journey-plan-links) > a > svg {
  position: absolute;
  right: 16px;
  top: 22px;
  width: 20px;
}
.neo-app .journey-practices span {
  font-size: 11px;
  font-weight: 700;
  color: var(--muted-foreground);
}
.neo-app .journey-practices h3,
.neo-app .journey-plan-links h3 {
  font-size: 19px;
  line-height: 1.3;
  margin-top: 6px;
}
.neo-app .journey-plan-links p {
  font-size: 13px;
  margin-top: 8px;
}
.neo-app .journey-weekly {
  border-left: 4px solid var(--neo-clay);
  padding: 12px 16px;
  background: var(--neo-paper);
}
.neo-app .journey-weekly h3 {
  font-size: 20px;
  line-height: 1.3;
  margin-top: 8px;
}
.neo-app .journey-contract summary {
  min-height: 48px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  padding: 12px 0;
}
.neo-app .journey-contract[open] > section {
  margin-top: 16px;
}

/* A focused messenger surface, independent of the coaching dashboard theme. */
.neo-app .whatsapp-chat {
  background: #efeae2;
  --background: #efeae2;
  --foreground: #172b26;
  --card: #fff;
  --border: #dce4de;
  --primary: #128c7e;
  --primary-foreground: #fff;
  --muted-foreground: #586963;
  --ring: #128c7e;
}
.neo-app .whatsapp-chat header {
  background: #f7faf8;
  border: 0;
  box-shadow: 0 1px 0 #dce4de;
  padding-top: env(safe-area-inset-top);
}
.neo-app .whatsapp-chat header > div {
  padding: 5px 8px;
  gap: 8px;
}
.neo-app .whatsapp-chat header h1 {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0;
}
.neo-app .whatsapp-chat .chat-settings-link {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.neo-app .whatsapp-chat .chat-content-bottom {
  padding-bottom: 0;
  border: 0;
}
.neo-app .whatsapp-chat .chat-message-list {
  padding: 12px 10px;
  background: #efeae2;
}
.neo-app .whatsapp-chat .message-row > div:first-child:not(.message-column) {
  display: none;
}
.neo-app .whatsapp-chat .message-column {
  max-width: 88%;
}
.neo-app .whatsapp-chat .message-column > span {
  display: none;
}
.neo-app .whatsapp-chat .chat-bubble {
  border: 0;
  box-shadow: 0 1px 1px #14261c12;
  border-radius: 10px;
  padding: 9px 12px;
  font: 400 16px/1.4 system-ui;
  background: #fff;
  color: #172b26;
}
.neo-app .whatsapp-chat .chat-bubble.bg-primary {
  background: #d9fdd3;
  color: #172b26;
  border-bottom-right-radius: 3px;
}
.neo-app .whatsapp-chat .chat-bubble.bg-card {
  background: #fff;
  border-bottom-left-radius: 3px;
}
.neo-app .whatsapp-chat .chat-composer {
  background: #efeae2;
  border: 0;
  padding: 4px 6px calc(4px + env(safe-area-inset-bottom));
}
.neo-app .whatsapp-chat[data-keyboard-open="true"] .chat-composer {
  padding: 3px 6px;
}
.neo-app .whatsapp-chat .chat-compose-row {
  border: 0;
  background: #fff;
  border-radius: 24px;
  padding: 3px;
  gap: 2px;
  box-shadow: 0 1px 2px #172b2614;
}
.neo-app .whatsapp-chat .chat-composer textarea {
  background: transparent;
  border: 0;
  min-height: 44px;
  padding: 11px 6px;
  font-size: 16px;
  line-height: 22px;
}
.neo-app .whatsapp-chat .chat-composer button {
  border: 0;
  box-shadow: none;
  border-radius: 50%;
}
.neo-app .whatsapp-chat .chat-compose-row > button:not([hidden]):last-child,
.neo-app .whatsapp-chat .chat-compose-row > div > div > button {
  background: #128c7e;
  color: #fff;
}
.neo-app .whatsapp-chat .voice-capture-panel {
  background: #fff !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 24px;
  bottom: 4px !important;
}
.neo-app .whatsapp-chat [role="group"] {
  width: 260px;
  max-width: 100%;
}
.neo-app .whatsapp-chat [role="group"] button {
  border: 0;
  box-shadow: none;
}

.neo-app .guardian-seed {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 18px 0 24px;
  padding: 16px;
  background: var(--neo-paper);
  border: 2px solid var(--neo-ink);
  border-radius: 8px;
}
.neo-app .guardian-seed svg {
  width: 84px;
  height: 84px;
  flex: none;
}
.neo-app .guardian-seed h2 {
  font-size: 19px;
  line-height: 1.25;
  margin-bottom: 6px;
}
.neo-app .guardian-seed p {
  font-size: 14px;
  line-height: 1.5;
}
.neo-app .client-settings {
  display: grid;
  gap: 24px;
}
.neo-app .client-settings section {
  padding: 20px;
  border: 2px solid var(--neo-ink);
  background: var(--neo-paper);
  border-radius: 8px;
}
.neo-app .client-settings h2 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 21px;
  margin-bottom: 12px;
}
.neo-app .client-settings h2 svg {
  width: 22px;
}
.neo-app .client-settings label {
  display: block;
  font-weight: 600;
  margin: 16px 0;
}
.neo-app .client-settings label input:not([type="checkbox"]) {
  display: block;
  width: 100%;
  padding: 12px;
  margin-top: 8px;
  min-height: 44px;
}
.neo-app .client-settings .settings-toggle {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
}
.neo-app .client-settings .settings-toggle input {
  width: 22px;
  height: 22px;
  accent-color: var(--neo-olive);
}
.neo-app .client-settings .neo-text-link {
  display: flex;
  min-height: 44px;
}
/* A single reading order for the journey: direction, practice, progress, reference. */
.neo-app .journey-editorial {
  --journey-accent: #66794e;
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.neo-app .journey-north {
  padding: 24px 22px;
  background: #e0e8cb;
  border: 1px solid #91a16f;
  border-radius: 4px;
  box-shadow: 3px 3px 0 #b9c5a0;
}
.neo-app .journey-eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #4e603b;
}
.neo-app .journey-eyebrow svg {
  width: 16px;
  height: 16px;
}
.neo-app .journey-north h2 {
  font-size: clamp(25px, 5vw, 34px);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.04em;
  margin: 14px 0 18px;
}
.neo-app .journey-inline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  color: #455a36;
  font-weight: 650;
  font-size: 14px;
  text-decoration: underline;
  text-underline-offset: 5px;
}
.neo-app .journey-inline svg {
  height: 16px;
  width: 16px;
}
.neo-app .journey-editorial section:not(.journey-north) > header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}
.neo-app .journey-editorial section:not(.journey-north) > header h2 {
  font-size: 23px;
  line-height: 1.2;
  letter-spacing: -0.035em;
  margin: 0 0 5px;
}
.neo-app .journey-editorial header p {
  font-size: 14px;
  line-height: 1.5;
  color: #66705b;
  margin: 0;
}
.neo-app .journey-number {
  font-size: 13px;
  font-weight: 750;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid #b6bea6;
  background: #f5f4e8;
  border-radius: 50%;
  flex-shrink: 0;
}
.neo-app .journey-focus {
  font-size: 20px;
  font-weight: 650;
  line-height: 1.5;
  border-left: 3px solid #8e9e6b;
  padding-left: 16px;
  margin: 14px 0;
}
.neo-app .journey-appointment {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff9ee;
  padding: 14px 16px;
  border-top: 1px solid #d8d5c6;
  border-bottom: 1px solid #d8d5c6;
  font-size: 13px;
  color: #535d45;
}
.neo-app .journey-appointment strong {
  display: block;
  color: #303827;
  font-size: 16px;
  margin-top: 3px;
}
.neo-app .journey-appointment > svg:last-child {
  margin-left: auto;
  width: 18px;
}
.neo-app .journey-featured-practice {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 22px 18px;
  border: 1px solid #b7c1a5;
  border-radius: 8px;
  background: #f5f8ec;
  color: #2c3625;
}
.neo-app .journey-featured-practice > svg {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}
.neo-app .journey-featured-practice > span {
  flex: 1;
  min-width: 0;
}
.neo-app .journey-featured-practice small {
  font-size: 12px;
  color: #596a44;
  font-weight: 650;
}
.neo-app .journey-featured-practice strong {
  display: block;
  font-size: 22px;
  line-height: 1.25;
  letter-spacing: -0.025em;
  margin: 8px 0;
}
.neo-app .journey-featured-practice em {
  font-style: normal;
  font-size: 14px;
  font-weight: 650;
  color: #48643c;
}
.neo-app .journey-practice-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  min-height: 56px;
  padding: 12px 4px;
  border-bottom: 1px solid #d9dccd;
  font-size: 16px;
}
.neo-app .journey-practice-row svg {
  width: 18px;
  flex-shrink: 0;
}
.neo-app .journey-reference {
  border-top: 1px solid #cbcbb8;
  padding-top: 20px;
}
.neo-app .journey-reference > h2 {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 12px;
}
.neo-app .journey-reference > div > a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid #d6d6c7;
}
.neo-app .journey-reference small {
  display: block;
  color: #69735c;
  margin-top: 4px;
  font-size: 13px;
}
.neo-app .journey-reference > div > a > svg:last-child {
  margin-left: auto;
  height: 18px;
}
.neo-app .journey-contract {
  margin-top: 18px;
  padding: 0;
  border: 0;
  background: transparent;
}
.neo-app .journey-contract summary {
  min-height: 44px;
  font-size: 14px;
  color: #68725b;
}
.neo-app .journey-see .guardian-seed {
  margin-top: 16px;
}
.neo-app .client-settings {
  gap: 24px;
}
.neo-app .client-settings > section {
  border: 1px solid #d4d3c1;
  box-shadow: none;
  border-radius: 8px;
  padding: 22px;
  background: #fff9ef;
}
.neo-app .client-settings > section h2 {
  font-size: 19px;
  letter-spacing: -0.025em;
  gap: 10px;
}
.neo-app .client-settings label {
  font-size: 14px;
  font-weight: 650;
  display: block;
  margin-top: 18px;
}
.neo-app .client-settings :is(input:not([type="checkbox"]), select) {
  font-size: 16px;
  line-height: 1.4;
  background: #fffdf7;
  border: 1px solid #bfc4b0;
  box-shadow: none;
  min-height: 50px;
  padding: 12px 14px;
  border-radius: 8px;
  width: 100%;
  margin: 8px 0;
}
.neo-app .client-settings input[readonly] {
  background: #f1f0e4;
  color: #65715b;
}
.neo-app .profile-identity {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 8px 0 20px;
}
.neo-app .profile-identity > span {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 18px;
  background: #dce6ca;
  color: #4f6637;
  font-size: 28px;
  font-weight: 750;
  flex-shrink: 0;
}
.neo-app .profile-identity h2 {
  font-size: 25px;
  margin: 4px 0;
  letter-spacing: -0.04em;
}
.neo-app .profile-identity p {
  font-size: 13px;
  color: #66715a;
  line-height: 1.5;
  margin: 0;
}
.neo-app .guardian-seed {
  padding: 8px 0;
  gap: 12px;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  min-height: 0;
}
.neo-app .guardian-seed svg {
  width: 48px !important;
  height: 48px !important;
  flex-shrink: 0;
}
.neo-app .guardian-seed h2 {
  font-size: 15px !important;
  line-height: 1.3;
  margin: 0 0 4px;
}
.neo-app .guardian-seed p {
  font-size: 12px !important;
  line-height: 1.45;
}
.guardian-companion {
  animation: guardian-breathe 5s ease-in-out infinite;
  transform-origin: 50% 90%;
}
.guardian-eye {
  animation: guardian-blink 7s infinite;
  transform-box: fill-box;
  transform-origin: center;
}
@keyframes guardian-breathe {
  0%,
  100% {
    transform: rotate(-2deg);
  }
  50% {
    transform: rotate(2deg);
  }
}
@keyframes guardian-blink {
  0%,
  45%,
  49%,
  100% {
    transform: scaleY(1);
  }
  47% {
    transform: scaleY(0.15);
  }
}
.chat-page-locked {
  overflow: hidden !important;
  overscroll-behavior: none !important;
}
.neo-app .whatsapp-chat[data-composer-focused="true"] .chat-composer {
  padding-bottom: 3px !important;
}
.neo-app .whatsapp-chat {
  contain: layout;
  transition: none !important;
}
.neo-app .whatsapp-chat .chat-message-list {
  min-height: 0;
  overflow-anchor: none;
  -webkit-overflow-scrolling: touch;
}
.neo-app .whatsapp-chat .chat-composer textarea {
  outline: none !important;
  box-shadow: none !important;
}
.neo-app .whatsapp-chat .chat-compose-row {
  background: #fff !important;
  border: 0 !important;
  border-radius: 24px !important;
  padding: 2px !important;
}
.neo-app .whatsapp-chat .chat-content-bottom {
  max-width: 900px;
}
.neo-app .whatsapp-chat header > div {
  max-width: 900px;
}
@media (prefers-reduced-motion: reduce) {
  .guardian-companion,
  .guardian-eye {
    animation: none;
  }
}
.neo-app .whatsapp-chat .chat-compose-row:focus-within {
  box-shadow: 0 0 0 2px #b5d8c8 !important;
}
.neo-app .journey-north h2 {
  max-inline-size: 28ch;
  text-wrap: balance;
}
.neo-app .journey-evidence {
  list-style: none;
  padding: 0;
  margin: 16px 0;
}
.neo-app .journey-evidence > li {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 16px 0;
  border-bottom: 1px solid #d7dacb;
}
.neo-app .journey-evidence > li > span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  border-radius: 50%;
  background: #dce8ca;
  color: #476736;
  font-weight: 750;
}
.neo-app .journey-evidence h3 {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.4;
  margin: 0 0 7px;
}
.neo-app .journey-evidence p {
  font-size: 14px;
  line-height: 1.6;
  color: #626d56;
  margin: 6px 0;
}
.neo-app .journey-evidence small {
  font-size: 12px;
  color: #647357;
}
/* Personal workspaces: clear hierarchy without procedural numbering. */
.neo-app .journey-editorial > section > header {
  padding-left: 0;
  gap: 10px;
}
.journey-goal-context {
  font-size: 14px;
  line-height: 1.55;
  max-width: 60ch;
  margin: 18px 0;
  color: #454b3c;
}
.journey-north .journey-eyebrow {
  font-size: 16px;
  letter-spacing: 0;
  text-transform: none;
  font-weight: 700;
}
.guardian-companion:hover {
  animation: guardian-hello 0.8s ease-in-out 1;
}
@keyframes guardian-hello {
  0%,
  100% {
    transform: rotate(0);
  }
  30% {
    transform: rotate(-12deg) translateY(-3px);
  }
  70% {
    transform: rotate(9deg);
  }
}
.diary-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 24px;
}
.diary-intro p {
  max-width: 48ch;
  line-height: 1.6;
}
.diary-intro button {
  flex: none;
}
.neo-app .diary-editor {
  border: 1px solid #b8b5a3;
  border-radius: 8px;
  box-shadow: 4px 5px 0 #dcd4ba;
  background-color: #fffcf1;
}
.neo-app .diary-note {
  border-radius: 5px;
  border: 1px solid #d3cbb6;
  border-left: 4px solid #87a987;
  box-shadow: 2px 3px 0 #e2d9c1;
}
.neo-app .notebook-writing {
  font-size: 17px;
  line-height: 32px;
  padding: 12px 16px;
  min-height: 208px;
  background: repeating-linear-gradient(
    transparent 0,
    transparent 31px,
    #b6bdb33b 31px,
    #b6bdb33b 32px
  );
  border: 0;
  resize: vertical;
  scroll-margin: 24px;
}
.diary-workspace {
  position: fixed !important;
  inset: auto !important;
  top: var(--chat-visible-top, 0px) !important;
  left: 0 !important;
  transform: none !important;
  translate: none !important;
  height: var(--chat-visible-height, 100dvh) !important;
  width: 100% !important;
  max-width: 100% !important;
  display: flex !important;
  flex-direction: column;
  gap: 4px !important;
  padding: 16px !important;
  border-radius: 0 !important;
  overflow: hidden;
  transition: none !important;
  animation: none !important;
  background: #fffaf0 !important;
}
.diary-workspace > h2 {
  margin-right: 40px;
}
.diary-workspace > p {
  font-size: 13px;
}
.diary-workspace .diary-editor {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 12px !important;
  margin-top: 10px;
  box-shadow: none;
  scroll-padding-bottom: 70px;
}
.diary-workspace .notebook-writing {
  min-height: 160px;
  resize: none;
  width: 100%;
}
.diary-workspace[data-keyboard-open="true"] .diary-prompts,
.diary-workspace[data-keyboard-open="true"] .diary-editor > p:first-child,
.diary-workspace[data-keyboard-open="true"] .diary-editor > p.text-xs {
  display: none;
}
.diary-workspace[data-keyboard-open="true"] .notebook-writing {
  min-height: 112px;
  height: 112px;
}
/* The save action owns its flex row instead of covering the scrollable privacy fields. */
.diary-actions {
  padding-top: 12px;
}
.neo-app .diary-workspace.keyboard-workspace {
  overflow: hidden !important;
}
.diary-workspace .diary-actions {
  flex: 0 0 auto;
  padding: 8px 0 0;
}
.diary-feeling {
  margin-bottom: 28px;
}
.diary-feeling > details {
  background: #fafbf5;
  border: 1px solid #c1c9b5;
  border-radius: 10px;
  padding: 18px;
}
.diary-feeling summary {
  font-size: 20px;
  font-weight: 700;
  cursor: pointer;
  min-height: 44px;
}
.diary-feeling summary > span {
  display: block;
  font-size: 14px;
  font-weight: 400;
  color: #52594b;
  margin-top: 6px;
}
.feeling-picker {
  max-width: 550px;
  margin: 20px auto;
  text-align: center;
}
.feeling-orbit {
  width: 148px;
  height: 148px;
  position: relative;
  margin: 20px auto;
  color: #aac1b7;
}
.feeling-orbit[data-tone="cool"] {
  color: #9eaccb;
}
.feeling-orbit[data-tone="warm"] {
  color: #e6ad73;
}
.feeling-orbit > span {
  position: absolute;
  inset: 8px;
  border-radius: 32%;
  border: 1px solid currentColor;
  background: color-mix(in srgb, currentColor 18%, transparent);
  transition:
    transform 180ms,
    color 180ms;
}
.feeling-orbit > i {
  position: absolute;
  inset: 42px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.55;
}
.feeling-label {
  font-size: 25px;
  font-weight: 750;
}
.feeling-picker label {
  display: block;
  margin: 12px auto;
  font-size: 14px;
}
.feeling-picker input[type="range"] {
  width: 100%;
  min-height: 44px;
  accent-color: #66794e;
}
.feeling-range-labels {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
}
.feeling-words {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin: 16px 0;
}
.feeling-words button {
  min-height: 44px;
  border: 1px solid #b5c3aa;
  background: #fffdf6;
  border-radius: 22px;
  padding: 8px 16px;
}
.feeling-words button[aria-pressed="true"] {
  background: #d9e6ce;
  border: 2px solid #66794e;
}
.feeling-picker small {
  display: block;
  line-height: 1.5;
}
.feeling-save {
  min-height: 44px;
  background: #66794e;
  color: #fff;
  padding: 10px 18px;
  border-radius: 7px;
  font-weight: 650;
}
.feeling-save:disabled {
  opacity: 0.5;
}
.feeling-trend {
  margin-top: 18px;
  border-bottom: 1px solid #d0d4c5;
  padding-bottom: 14px;
}
.feeling-trend figcaption {
  font-weight: 700;
}
.feeling-trend svg {
  width: 100%;
  max-height: 180px;
}
.feeling-trend p {
  font-size: 13px;
  line-height: 1.5;
}
.session-ledger {
  padding: 22px;
  border: 1px solid #bac7ad;
  border-radius: 8px;
  background: #fafbf5;
  margin: 20px 0;
}
.session-ledger header h2 {
  font-size: 21px;
  font-weight: 700;
}
.session-ledger header p,
.session-ledger-note {
  font-size: 13px;
  line-height: 1.6;
  margin: 10px 0;
}
.session-ledger-counts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 20px 0;
}
.session-ledger-counts dt {
  font-size: 13px;
}
.session-ledger-counts dd {
  font-size: 28px;
  font-weight: 750;
  margin-top: 3px;
}
.session-ledger summary {
  min-height: 44px;
  cursor: pointer;
  align-content: center;
  font-weight: 650;
}
.session-ledger-months > div {
  display: grid;
  grid-template-columns: 70px minmax(60px, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin: 10px 0;
  font-size: 13px;
}
.session-ledger-months meter {
  width: 100%;
  height: 20px;
}
.staff-agenda-switch {
  display: flex;
  gap: 12px;
  margin-bottom: 20px;
}
@media (max-width: 600px) {
  .diary-intro {
    align-items: stretch;
    flex-direction: column;
    gap: 12px;
  }
  .session-ledger-counts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .session-ledger-months > div {
    grid-template-columns: 60px 1fr;
  }
  .session-ledger-months > div > span {
    grid-column: 2;
  }
  .diary-workspace {
    padding: 12px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .guardian-companion:hover {
    animation: none;
  }
  .feeling-orbit > span {
    transition: none;
  }
}
.progress-observatory {
  padding: 22px;
  background: #fafbf5;
  border: 1px solid #bdcbb1;
  border-radius: 8px;
}
.progress-observatory h2 {
  font-size: 21px;
  font-weight: 700;
}
.progress-observatory p {
  font-size: 13px;
  line-height: 1.5;
  margin-top: 10px;
}
.progress-observatory dl {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  margin: 20px 0;
}
.progress-observatory dt {
  font-size: 13px;
}
.progress-observatory dd {
  font-size: 28px;
  font-weight: 700;
}
.progress-observatory small {
  font-size: 13px;
  font-weight: 400;
}
.progress-observatory figcaption {
  font-weight: 650;
  font-size: 14px;
}
.progress-observatory li {
  display: grid;
  grid-template-columns: 70px 1fr 25px;
  align-items: center;
  gap: 12px;
  margin: 12px 0;
}
.progress-observatory meter {
  width: 100%;
  height: 20px;
}
.chat-system-event {
  max-width: 90%;
  padding: 12px 16px;
  border: 1px solid #cbd4c1;
  border-radius: 10px;
  background: #f4f7ee;
  font-size: 13px;
  line-height: 1.5;
  text-align: center;
  color: #394532;
}
.chat-system-event a {
  display: block;
  min-height: 44px;
  align-content: center;
  font-weight: 700;
  text-decoration: underline;
}
/* Member workspace: one clear reading column, real controls, no stacked chrome. */
.brand-name{font-family:Georgia,'Times New Roman',serif!important;font-weight:500!important;letter-spacing:-.055em!important;line-height:1!important}.brand-method{font-size:.57em!important;letter-spacing:.2em!important}.brand-mark{flex-shrink:0;width:2.9rem!important;height:2.9rem!important}.brand-sm .brand-mark{width:2.2rem!important;height:2.2rem!important}
.account-workspace,.client-settings,.install-guide{display:grid;gap:24px;max-width:850px;margin:0 auto}.member-profile,.account-workspace>section,.measurements,.install-guide>section,.company-contact,.notification-settings{background:var(--neo-paper,#fff9eb);border:2px solid var(--neo-ink,#292c23);padding:24px;box-shadow:4px 4px 0 var(--neo-ink,#292c23);border-radius:12px;min-width:0}.member-profile h2,.account-workspace h2,.measurements h2,.install-guide h2{font-size:1.45rem;font-weight:750;line-height:1.2;margin:0 0 16px}.member-profile label,.measurement-form label,.measurement-history label,.measurement-assign label{display:grid;gap:8px;font-weight:600;margin:16px 0}.member-profile input,.member-profile textarea,.measurement-form select,.measurement-history select,.measurement-assign select,.measurement-form textarea{width:100%;min-height:48px;border:1.5px solid var(--neo-ink,#292c23);border-radius:8px;padding:12px;background:#fffdf7;font:inherit}.member-profile textarea,.measurement-form textarea{min-height:110px;resize:vertical}.member-profile input[readonly]{background:#eee9df;color:#46463e}.member-profile p,.company-contact p,.notification-settings p,.install-guide p,.measurements p{line-height:1.6;margin:12px 0}.member-profile button,.account-workspace button,.install-guide button,.measurements button{min-height:44px}.member-profile img{object-fit:cover;border-radius:12px;border:2px solid var(--neo-ink,#292c23);max-width:112px;max-height:112px}.company-contact a{display:block;overflow-wrap:anywhere;margin:12px 0}.install-guide>header{display:flex;align-items:center;gap:20px}.install-guide>header img{border:2px solid var(--neo-ink,#292c23);border-radius:18px}.install-guide ol{padding-left:22px;list-style:decimal}.install-guide li{margin:12px 0;line-height:1.6}.install-guide h3,.measurements h3{font-size:1.15rem;font-weight:700;margin:0 0 12px}.measurements{margin:28px 0}.measurement-form,.measurement-history{padding-top:24px;margin-top:24px;border-top:1px solid #b6b8a6}.measurement-history svg{width:100%;max-width:600px;height:auto}.measurement-history ol{display:flex;flex-wrap:wrap;gap:14px;list-style:none;padding:0}.measurement-history li{padding:12px;background:#f2eddd;border-radius:6px;min-width:130px}.settings-toggle{min-height:48px;display:flex!important;align-items:center;gap:12px}.settings-toggle input{width:22px;height:22px;flex-shrink:0}.team-security{max-width:520px;margin:32px auto;padding:24px}.team-security img{max-width:240px;width:100%;height:auto}.team-security input{min-height:48px;max-width:100%;font-size:20px}.team-security button{min-height:44px}.team-security details{overflow-wrap:anywhere}@media(max-width:600px){.member-profile,.account-workspace>section,.measurements,.install-guide>section,.company-contact,.notification-settings{padding:18px;box-shadow:3px 3px 0 var(--neo-ink,#292c23)}.brand-mark{width:2.5rem!important;height:2.5rem!important}.install-guide>header{gap:14px}.install-guide>header img{width:64px;height:64px}}
.member-profile-heading{display:grid;grid-template-columns:80px minmax(0,1fr);gap:18px;align-items:start;margin-bottom:24px}.member-photo{width:80px;height:80px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:2px solid var(--neo-ink,#292c23);border-radius:12px;background:#dce5d1;font-family:Georgia,serif;font-size:2.5rem;font-weight:600}.member-photo img{width:100%!important;height:100%!important;border:0!important;max-width:none!important;max-height:none!important}.member-profile-heading h2{overflow-wrap:anywhere}.photo-upload{font-size:.9rem}.photo-upload input{max-width:100%;min-width:0;font-size:.78rem;padding:6px}.photo-upload input::file-selector-button{border:0;border-radius:5px;padding:9px;background:#334637;color:#fff;margin-right:8px;font:inherit}.profile-fields{border:0;margin:0;padding:0}.reserved-notes{padding:20px 0}.reserved-notes h2{font-size:1.25rem;font-weight:700}.reserved-notes textarea{display:block;width:100%;min-height:120px;padding:12px;margin:10px 0;border:1.5px solid var(--neo-ink,#292c23);border-radius:8px}.reserved-notes li{padding:16px 0;border-top:1px solid #b6b8a6}.reserved-notes>p{line-height:1.6;margin:12px 0}.reserved-notes label{display:block;font-weight:600}

/* Consistent glass surfaces; solid text remains readable without backdrop support. */
.neo-app .home-checkin, .neo-app .journey-editorial > section, .neo-app .member-profile,
.neo-app .notification-settings, .neo-app .diary-feeling > details {
 background:linear-gradient(135deg,#fffdf4e8,#f5efdfbb);border:1px solid #ffffffdd;
 box-shadow:inset 0 1px 0 #fff,0 8px 28px #3143370c;border-radius:16px;
 backdrop-filter:blur(18px) saturate(125%);-webkit-backdrop-filter:blur(18px) saturate(125%);
}
.neo-app .journey-editorial {gap:24px;}
.neo-app .journey-editorial > section {padding:24px;}
.neo-app .journey-north h2 {font-size:clamp(28px,6vw,42px);line-height:1.15;letter-spacing:-.025em;color:#2b493b;}
.neo-app .journey-goal-context {max-width:55ch;line-height:1.6;}
.neo-app .journey-reference {border-top:1px solid #bdc4b6;padding-top:24px;}
.neo-app .guardian-seed svg {width:84px;height:84px;flex-shrink:0;}
.neo-app .home-checkin {padding:24px;margin-bottom:24px;}
.neo-app .home-checkin h2,.neo-app .diary-feeling summary {font-family:inherit;letter-spacing:-.02em;}
.neo-app .checkin-reflection {text-align:left;max-width:550px;margin:16px auto;}
.neo-app .checkin-reflection label {display:block;font-weight:600;line-height:1.5;}
.neo-app .checkin-reflection label span {display:block;font-size:12px;font-weight:400;opacity:.7;}
.neo-app .checkin-reflection textarea {width:100%;margin-top:8px;padding:12px;font:inherit;font-size:16px;line-height:1.5;background:#fffaf4;border:1px solid #a7b9a9;border-radius:10px;}
.neo-app .checkin-empathy {margin-bottom:12px;line-height:1.6;}
.neo-app .checkin-last {font-size:13px;margin-top:16px;}
.neo-app .checkin-privacy {font-size:12px;line-height:1.5;opacity:.75;margin-top:12px;}
.neo-app .diary-question {background:none!important;margin:8px 0 16px;padding:0;font-weight:600;line-height:1.5;}
.neo-app .diary-editor .notebook-writing {background:#fffdf7!important;line-height:1.75;padding:16px;border:1px solid #d8decc;border-radius:8px;font-family:inherit;}
.neo-app .diary-note.notebook-sheet {background-image:none!important;}
.neo-app .diary-note p {line-height:1.7;white-space:pre-wrap;}
.neo-app .photo-upload {display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 16px;border:1px solid #9aae9c;border-radius:10px;background:#eef3e8;cursor:pointer;margin-top:12px;font-weight:600;}
.neo-app .photo-upload:focus-within {outline:2px solid #2b493b;outline-offset:3px;}
.neo-app .notification-settings .settings-toggle {display:flex;align-items:center;gap:12px;min-height:48px;cursor:pointer;}
.neo-app .settings-toggle input {width:24px;height:24px;accent-color:#406a50;}
.local-unlock {max-width:520px;margin:40px auto;padding:24px;}
.local-unlock form,.local-unlock label {display:grid;gap:12px;margin:20px 0;}
.local-unlock input {padding:12px;font-size:16px;border:1px solid #94aa98;border-radius:8px;}
.local-sync-notice {position:fixed;top:0;z-index:100;background:#fff4cf;padding:12px;}
@media(max-width:640px){
 .keyboard-workspace {position:fixed!important;inset:auto!important;top:var(--chat-visible-top,0px)!important;left:0!important;width:100%!important;max-width:100%!important;height:var(--chat-visible-height,100dvh)!important;max-height:var(--chat-visible-height,100dvh)!important;transform:none!important;translate:none!important;display:flex!important;flex-direction:column;overflow:auto!important;border-radius:0!important;padding:16px!important;animation:none!important;transition:none!important;scroll-padding-bottom:16px;}
 .keyboard-workspace textarea {font-size:16px;flex-shrink:0;}
 .keyboard-workspace [data-keyboard-open="true"] {padding-bottom:0!important;}
 .neo-app .journey-editorial > section {padding:20px;}
}
@media(prefers-reduced-transparency:reduce){.neo-app .home-checkin,.neo-app .journey-editorial > section {backdrop-filter:none;background:#fffaf1;}}
/* Glass controls share the app palette without placing texture beneath editable text. */
.neo-app .neo-panel,.neo-app .card-elev {background:linear-gradient(135deg,#fffdf4ed,#f5efdfce);border:1px solid #ffffffd9!important;box-shadow:inset 0 1px 0 #fff,0 8px 28px #3143370c!important;backdrop-filter:blur(18px) saturate(125%);-webkit-backdrop-filter:blur(18px) saturate(125%);}
.neo-app .diary-prompts button {border:1px solid #b3c3af!important;box-shadow:none!important;border-radius:12px!important;background:#f7faf3!important;color:#2b493b;}
.neo-app .diary-prompts button[aria-pressed="true"] {background:#dcebd5!important;border-color:#66856b!important;}
.neo-app .diary-workspace {border:0!important;}
.neo-app .diary-workspace .diary-editor {border-color:#d1dbcb;}
