/* Current direction: luminous relationship workspace. Loaded LAST online and offline.
   Legacy neo-theme supplies geometry; this file owns material, colour and typography.
   No animated backdrop, network fonts or filters on message bubbles/editable text. */
.neo-app,
.neo-app .fitness-workspace,
.neo-app .neo-dashboard,
.neo-app .wellbeing-offline {
  --neo-ink: #243b32;
  --neo-cream: #f5f3eb;
  --neo-paper: #fffcf5;
  --neo-clay: #c87a53;
  --neo-olive: #345b46;
  --neo-saffron: #eed49a;
  --background: #f5f3eb;
  --foreground: #243b32;
  --card: #fffcf5;
  --card-foreground: #243b32;
  --surface: #fffcf5;
  --surface-muted: #e7efe6;
  --primary: #345b46;
  --primary-foreground: #ffffff;
  --primary-soft: #dcebdc;
  --muted: #e7ebe3;
  --muted-foreground: #536356;
  --border: #c4cdc2;
  --input: #879b88;
  --ring: #345b46;
  --sidebar: #f5f7f0;
  --sidebar-primary: #345b46;
  --sidebar-accent: #dcebdc;
  --sidebar-border: #c4cdc2;
  --sidebar-foreground: #243b32;
  --sidebar-muted-foreground: #536356;
  --glass-fill: linear-gradient(135deg, #ffffffbf 0%, #ffffff70 48%, #fffaf391 100%);
  --paper-fill: #fffefa;
  --surface-line: #dce3d9;
  --glass-shadow: inset 0 1px 0 #ffffff, inset 0 -1px 0 #ffffff75, 0 10px 28px #3149370e;
  background:
    radial-gradient(ellipse at 5% 5%, #cee5d240, transparent 52%),
    radial-gradient(ellipse at 95% 35%, #f2c8b130, transparent 48%), #f7f7f2 !important;
  color: var(--foreground);
}
.neo-app {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}
.neo-app :is(h1, h2, h3, .font-display) {
  font-family: inherit;
  font-weight: 650;
  letter-spacing: -0.02em;
}
/* At most the chrome and principal page surfaces blur. Nested cards use translucent paint. */
.neo-app :is(.glass-chrome, .neo-header),
.neo-app .fitness-workspace .glass-chrome,
.neo-app .neo-staff > div > header {
  background: linear-gradient(120deg, #ffffffb8, #fffcf59e);
  border-bottom: 1px solid #ffffffc7;
  box-shadow: 0 1px 12px #345b4609;
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
}
.neo-app .fitness-nav .glass-dock {
  background: linear-gradient(145deg, #ffffffc9, #ffffff78 55%, #fffcf5ab);
  border: 1px solid #fffffff0;
  box-shadow:
    inset 0 2px 1px #ffffff,
    inset 0 -1px 1px #ffffff9c,
    0 8px 36px #345b4626;
  backdrop-filter: blur(22px) saturate(170%);
  -webkit-backdrop-filter: blur(22px) saturate(170%);
}
.neo-app .fitness-nav {
  background: transparent !important;
  --primary: #345b46;
  --primary-soft: #cfe5d2;
  --muted-foreground: #435449;
}
.neo-app
  :where(
    [data-slot="card"],
    .neo-panel,
    .card-elev,
    .home-checkin,
    .journey-editorial > section,
    .member-profile,
    .notification-settings,
    .account-workspace > section,
    .client-settings > section,
    .install-guide > section,
    .company-contact,
    .measurements,
    .session-ledger,
    .progress-observatory,
    .diary-feeling > details,
    .wall-composer,
    .wall-post,
    .wall-empty,
    .wall-notice,
    .community-intro,
    .community-guide,
    .victory-celebration,
    .tool-row,
    .pause-grounding,
    .pause-sound,
    .auth-panel
  ) {
  background: var(--glass-fill) !important;
  color: var(--foreground);
  border: 1px solid #ffffffeb !important;
  border-radius: 18px !important;
  box-shadow: var(--glass-shadow) !important;
}
.neo-app .fitness-workspace :is(.card-elev, .today-context, .fitness-progress),
.neo-app .neo-dashboard :is(.neo-panel, .today-primary) {
  background: var(--glass-fill) !important;
  border: 1px solid #ffffffeb !important;
  border-radius: 18px;
  box-shadow: var(--glass-shadow) !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.neo-app :is(.home-checkin, .journey-north, .member-profile, .wall-composer) {
  backdrop-filter: blur(14px) saturate(135%);
  -webkit-backdrop-filter: blur(14px) saturate(135%);
}
.neo-app :is(.neo-signout, .pause-header-button, .neo-header .pause-header-button) {
  background: #ffffff80;
  color: var(--foreground);
  border: 1px solid #ffffffd9;
  border-radius: 12px;
  box-shadow: inset 0 1px 0 #fff;
}
.neo-app .pause-header-button {
  background: #f1d4c4b8;
}
.neo-app
  [data-slot="button"]:is(
    [data-variant="default"],
    [data-variant="secondary"],
    [data-variant="outline"],
    [data-variant="destructive"]
  ) {
  border: 1px solid #345b4633;
  box-shadow: none;
  border-radius: 12px;
  font-weight: 650;
}
.neo-app [role="dialog"],
.neo-app .community-dialog {
  background: #fffcf5 !important;
  border: 1px solid #ffffff !important;
  box-shadow: 0 18px 80px #243b3233;
  border-radius: 18px !important;
}
.neo-app
  :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not(
        [hidden]
      ),
    textarea,
    select
  ) {
  border: 1px solid var(--input);
  border-radius: 10px;
  background-color: #fffef9;
  font-size: 16px;
}
.neo-app :is(a, button, input, textarea, select, summary, [tabindex="0"]):focus-visible {
  outline: 2px solid #345b46;
  outline-offset: 3px;
}
.neo-app :is([role="tablist"], .admin-preview-tabs button) {
  border: 1px solid #c4cdc2;
  border-radius: 12px;
  box-shadow: none;
}
.neo-app [role="tab"][data-state="active"],
.neo-app .admin-preview-tabs button[aria-pressed="true"] {
  background: #dcebdc;
  color: #243b32;
  box-shadow: none;
}
.neo-app [data-sidebar="sidebar"] {
  border-right: 1px solid #c4cdc2;
  background: #f5f7f0;
}
.neo-app [data-sidebar="menu-button"][data-active="true"] {
  background: #dcebdc;
  border-color: transparent;
  color: #243b32;
  box-shadow: none;
}
.neo-app table thead {
  background: #e7efe6;
}
/* Oggi: a single community entry, quieter greeting, daily thought before private progress. */
.neo-app .neo-main {
  max-width: 1000px;
  padding-top: 28px;
}
.neo-app .neo-welcome {
  align-items: center;
  margin-bottom: 24px;
}
.neo-app .neo-welcome h1 {
  font-weight: 700;
  font-size: clamp(32px, 5vw, 48px);
}
.neo-app .neo-welcome .guardian-seed {
  margin: 0;
  padding: 0;
  max-width: 260px;
  gap: 12px;
}
.neo-app .neo-welcome .guardian-seed svg {
  width: 80px !important;
  height: 80px !important;
}
.neo-app .neo-welcome .guardian-seed h2 {
  font-size: 16px !important;
}
.neo-app .neo-welcome .guardian-seed p {
  font-size: 13px !important;
}
.neo-app :is(.daily-quote, .neo-dashboard .daily-quote) {
  background: linear-gradient(135deg, #295842, #396c53 60%, #4d7650) !important;
  border: 1px solid #749b7b;
  border-radius: 20px;
  box-shadow:
    inset 0 1px 0 #ffffff45,
    0 12px 32px #345b4619;
  color: #fffdf5;
  padding: 28px 32px;
}
.neo-app :is(.daily-quote-heading, .neo-dashboard .daily-quote-heading) h2 {
  background: #ffffff12;
  color: #fffdf5;
  border: 1px solid #ffffff55;
  border-radius: 10px;
  box-shadow: inset 0 1px 0 #ffffff38;
  font:
    600 17px/1.4 -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    system-ui,
    sans-serif;
  padding: 8px 12px;
}
.neo-app :is(.daily-quote-heading, .neo-dashboard .daily-quote-heading) time {
  color: #e2ecdf;
}
.neo-app :is(.daily-quote, .neo-dashboard .daily-quote) blockquote {
  color: #fffdf5;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(27px, 4.5vw, 38px);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: -0.025em;
  max-width: 34ch;
}
.neo-app :is(.daily-quote-content, .neo-dashboard .daily-quote-content) > p {
  color: #e2ecdf;
  font-size: 15px;
}
.neo-app :is(.daily-quote-art, .neo-dashboard .daily-quote-art) {
  background: #ffffff0a;
  border: 1px solid #ffffff33;
  right: -55px;
  bottom: -60px;
  width: 200px;
  height: 200px;
}
.neo-app .today-direction {
  margin: 0 0 24px;
  padding: 24px;
}
.neo-app .today-direction .journey-goal-title {
  font-size: clamp(24px, 4vw, 32px);
  margin-block: 12px;
}
.neo-app .neo-grid {
  gap: 24px;
}
.neo-app .neo-priority {
  height: auto;
  min-height: 180px;
}
.neo-app .neo-goals {
  height: auto;
  min-height: 220px;
  color: #243b32;
}
.neo-app .neo-community {
  grid-column: span 5;
  min-height: 176px;
}
.neo-app .neo-coach {
  grid-column: span 7;
  min-height: 176px;
}
.neo-app .neo-card-cta {
  border-top: 1px solid #345b4626;
}
.neo-app .neo-install {
  border-block: 1px solid #b6c6b2;
}
.neo-app .neo-progress-bar {
  border: 1px solid #61755f;
  border-radius: 10px;
  background: #f8faf4;
}
.neo-app .neo-progress-bar > span {
  background: #345b46;
}
.neo-app .victory-celebration {
  background: linear-gradient(135deg, #fffdf4dc, #f2dfa7a6) !important;
}
.neo-app .victory-list > li {
  background: #ffffff80;
  border: 1px solid #ffffffd9;
  border-radius: 12px;
  padding: 16px;
}
.neo-app .victory-heading h2 {
  font-weight: 700;
  font-size: clamp(22px, 4vw, 28px);
}
.neo-app .home-checkin {
  text-align: left;
}
.neo-app .home-checkin h2 {
  font-size: 24px;
}
.neo-app .checkin-empathy,
.neo-app .checkin-reflection {
  margin-inline: 0;
}
.neo-app .feeling-options button {
  border-width: 1px;
  box-shadow: none;
}
.neo-app .journey-north {
  border-left: 3px solid #87a987 !important;
}
.neo-app .journey-featured-practice {
  background: #e0eddf;
  border: 1px solid #b3c5b0;
  box-shadow: none;
  border-radius: 12px;
}
.neo-app .journey-reference {
  border-color: #b6c6b2;
}
.neo-app .member-photo,
.neo-app .member-profile img {
  border: 1px solid #b6c6b2;
  border-radius: 18px;
}
.neo-app .member-profile-heading h2 {
  font-size: 26px;
  margin-bottom: 8px;
}
.neo-app .member-profile label {
  font-weight: 600;
}
.neo-app .notebook-sheet {
  background: #fffef9 !important;
  border: 1px solid #c4cdc2 !important;
  border-radius: 12px !important;
  box-shadow: 0 4px 18px #345b4609 !important;
}
.neo-app .notebook-sheet::before {
  display: none;
}
.neo-app .notebook-writing,
.neo-app .notebook-content,
.neo-app .notebook-sheet textarea {
  background-image: none !important;
}
.neo-app .wall-avatar,
.neo-app .community-mark,
.neo-app .tool-icon,
.neo-app .chat-coach-badge {
  border: 1px solid #b6c6b2;
  box-shadow: none;
  background: #dcebdc;
  border-radius: 12px;
}
.neo-app .wall-post-footer {
  border-top: 1px solid #c4cdc2;
}
.neo-app .wall-create {
  border: 1px solid #9f5539;
  background: #c87a53;
  color: #241c17;
  border-radius: 10px;
}
.neo-app .wall-toolbar > div button[aria-pressed="true"],
.neo-app .community-kind-choice button[aria-pressed="true"] {
  border: 1px solid #61755f;
  background: #dcebdc;
  box-shadow: none;
}
/* Visual hierarchy: navigation floats; personal content rests on paper.
   No additional backdrop filters, animations or keyboard geometry changes. */
.neo-app .neo-dashboard .today-direction,
.neo-app .journey-editorial > :is(.journey-between, .journey-do, .journey-see) {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.neo-app .neo-dashboard .today-direction {
  border-left: 2px solid #87a987 !important;
  padding: 8px 0 8px 20px;
  margin-block: 24px;
}
.neo-app .journey-editorial {
  gap: 32px;
}
.neo-app .journey-editorial > :is(.journey-between, .journey-do, .journey-see) {
  padding: 0 2px;
}
.neo-app .journey-editorial > section > header h2 {
  font-size: 22px;
  font-weight: 650;
}
.neo-app .journey-editorial > section > header p {
  font-size: 15px;
  color: var(--muted-foreground);
}
.neo-app .journey-north {
  border-radius: 16px !important;
}
.neo-app .journey-north h2 {
  font-size: clamp(26px, 5.5vw, 36px);
  line-height: 1.22;
  text-wrap: pretty;
}
.neo-app .journey-goal-context {
  font-size: 15px;
  line-height: 1.6;
}
.neo-app .journey-between .journey-focus {
  font-size: 22px;
  line-height: 1.4;
}
.neo-app .journey-see {
  border-top: 1px solid var(--surface-line) !important;
  padding-top: 24px !important;
}
.neo-app .journey-practice-row {
  min-height: 56px;
  border-color: var(--surface-line);
}
.neo-app .neo-section-title {
  font-size: 18px;
  font-weight: 650;
  letter-spacing: -0.015em;
}
.neo-app .neo-dashboard .neo-goals {
  background: var(--paper-fill) !important;
  border: 1px solid var(--surface-line) !important;
  box-shadow: none !important;
}
.neo-app .neo-community,
.neo-app .neo-coach {
  box-shadow: none !important;
  border: 1px solid var(--surface-line) !important;
}
.neo-app .home-checkin {
  background: var(--paper-fill) !important;
  box-shadow: none !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.neo-app .diary-intro {
  position: relative;
  display: block;
  overflow: hidden;
  padding: 26px 24px 24px 30px;
  margin-bottom: 24px;
  background: var(--paper-fill);
  border: 1px solid var(--surface-line);
  border-radius: 14px 22px 22px 14px;
  box-shadow: 0 8px 28px #243b3209;
}
.neo-app .diary-intro::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 12px;
  width: 2px;
  background: #c87a532d;
  pointer-events: none;
}
.neo-app .diary-invitation {
  position: relative;
  padding-right: 44px;
}
.neo-app .diary-invitation-mark {
  position: absolute;
  right: 0;
  top: 0;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--primary);
  background: var(--primary-soft);
}
.neo-app .diary-paper-label {
  display: block;
  font-size: 14px;
  color: var(--muted-foreground);
  margin-bottom: 12px;
}
.neo-app .diary-invitation h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(26px, 5vw, 34px);
  font-weight: 400;
  line-height: 1.22;
  letter-spacing: -0.025em;
  max-width: 20ch;
}
.neo-app .diary-invitation p {
  font-size: 16px;
  line-height: 1.65;
  color: var(--muted-foreground);
  margin-top: 16px;
}
.neo-app .diary-intro > button {
  margin-top: 22px;
  min-height: 48px;
  width: 100%;
  justify-content: center;
}
.neo-app .diary-feeling > details {
  background: transparent !important;
  box-shadow: none !important;
  border: 1px solid var(--surface-line) !important;
  border-radius: 12px !important;
  padding: 16px 18px;
}
.neo-app .diary-feeling summary {
  min-height: 44px;
  font-size: 18px;
  font-weight: 600;
  cursor: pointer;
}
.neo-app .diary-feeling summary > span {
  display: block;
  margin-top: 4px;
  color: var(--muted-foreground);
  font-size: 14px;
  font-weight: 400;
}
.neo-app .diary-history {
  margin-top: 12px;
}
.neo-app .diary-history .mood-history {
  background: var(--paper-fill) !important;
  box-shadow: none !important;
  border: 1px solid var(--surface-line) !important;
  padding: 20px 0 0;
  border-radius: 0 !important;
  border-width: 1px 0 0 !important;
}
.neo-app .diary-history .mood-history > div > h2 {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.neo-app .mood-history [role="group"] button,
.neo-app .wall-toolbar > div button {
  min-height: 44px;
  padding: 8px 14px;
  background: transparent;
  color: var(--foreground);
  border: 1px solid var(--surface-line);
  border-radius: 10px;
  box-shadow: none;
  font-weight: 550;
}
.neo-app .mood-history [role="group"] button[aria-pressed="true"],
.neo-app .wall-toolbar > div button[aria-pressed="true"] {
  background: var(--primary-soft);
  border-color: var(--primary);
  color: var(--foreground);
  box-shadow: none;
}
.neo-app .diary-note.notebook-sheet {
  border-radius: 8px !important;
  background: var(--paper-fill) !important;
  border-left: 3px solid #87a987 !important;
  box-shadow: 0 3px 14px #243b3208 !important;
}
.neo-app .diary-note time {
  color: var(--foreground);
  font-size: 13px;
  font-weight: 600;
}
.neo-app .diary-note .notebook-content {
  line-height: 1.75;
}
.neo-app .community-intro {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 0 22px;
  gap: 14px;
}
.neo-app .community-intro h2 {
  font-size: 22px;
  line-height: 1.3;
  font-weight: 650;
  margin-bottom: 8px;
}
.neo-app .community-intro > div > p {
  font-size: 15px;
  line-height: 1.55;
  color: var(--muted-foreground);
}
.neo-app .community-purpose summary {
  min-height: 44px;
  cursor: pointer;
  font-size: 14px;
  color: var(--primary);
  font-weight: 600;
  padding-top: 12px;
}
.neo-app .community-purpose p {
  font-size: 15px;
  line-height: 1.6;
  max-width: 60ch;
  padding-top: 8px;
}
.neo-app .wall-composer {
  display: block;
  padding: 16px;
  border-radius: 16px !important;
  background: var(--paper-fill) !important;
  border: 1px solid var(--surface-line) !important;
  box-shadow: 0 3px 14px #243b3207 !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.neo-app .wall-compose-row {
  display: flex;
  align-items: center;
  gap: 10px;
}
.neo-app .wall-compose-trigger {
  min-height: 48px;
  background: #f1f4ef;
  border: 1px solid #dce3d9;
  border-radius: 24px;
  color: var(--muted-foreground);
  text-align: left;
  padding: 12px 16px;
  font-size: 15px;
  flex: 1;
  min-width: 0;
}
.neo-app .wall-compose-actions {
  display: flex;
  gap: 8px;
  border-top: 1px solid var(--surface-line);
  margin-top: 14px;
  padding-top: 10px;
}
.neo-app .wall-compose-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex: 1;
  min-height: 44px;
  border-radius: 10px;
  color: var(--foreground);
  background: transparent;
  font-size: 14px;
  font-weight: 600;
}
.neo-app .wall-compose-actions button:first-child svg {
  color: #a35437;
}
.neo-app .wall-compose-actions button:last-child svg {
  color: #6a622f;
}
.neo-app .wall-compose-actions button:hover {
  background: var(--primary-soft);
}
.neo-app .wall-compose-privacy {
  font-size: 12px;
  color: var(--muted-foreground);
  margin: 6px 0 0;
  text-align: center;
}
.neo-app .wall-avatar {
  border-radius: 50%;
  border: 1px solid #d0decf;
}
.neo-app .avatar-anonymous {
  color: #536356;
  background: #eff2ed;
}
.neo-app .avatar-member {
  color: #345b46;
  background: #dcebdc;
}
.neo-app .wall-post .wall-post-header {
  padding: 18px 18px 0;
}
.neo-app .wall-post .wall-post-kind {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 12px 18px 0;
  padding: 5px 9px;
  background: #eff4ed;
  border-radius: 6px;
  font-size: 12px;
  color: var(--primary);
}
.neo-app .wall-feed {
  gap: 18px;
}
.neo-app .wall-thank {
  border-radius: 8px;
  min-height: 44px;
  font-size: 14px;
  font-weight: 600;
}
.neo-app .wall-thank[aria-pressed="true"] {
  background: #f5e4dc;
  color: #873f2b;
}
.neo-app .wall-post {
  background: var(--paper-fill) !important;
  border: 1px solid var(--surface-line) !important;
  border-radius: 14px !important;
  box-shadow: 0 3px 14px #243b3207 !important;
}
.neo-app .wall-post-header {
  align-items: center;
}
.neo-app .wall-post-body {
  font-size: 17px;
  line-height: 1.65;
}
.neo-app .wall-post-footer {
  border-color: var(--surface-line);
}
.neo-app .wall-post-meta {
  font-size: 13px;
  color: var(--muted-foreground);
}
.neo-app .client-settings {
  gap: 24px;
}
.neo-app .client-settings > section {
  background: var(--paper-fill) !important;
  box-shadow: none !important;
  border: 1px solid var(--surface-line) !important;
  border-radius: 14px !important;
}
.neo-app .neo-staff .card-elev {
  background: var(--paper-fill) !important;
  border: 1px solid var(--surface-line) !important;
  box-shadow: none !important;
  border-radius: 12px !important;
}
.neo-app .neo-staff table th {
  font-size: 13px;
  text-transform: none;
  letter-spacing: 0;
}
.neo-app .neo-staff table td {
  padding-block: 14px;
}
@media (max-width: 600px) {
  .neo-app .diary-intro {
    padding: 24px 20px 24px 28px;
  }
  .neo-app .diary-invitation {
    padding-right: 0;
  }
  .neo-app .diary-invitation-mark {
    width: 36px;
    height: 36px;
  }
  .neo-app .diary-paper-label {
    margin-bottom: 18px;
    padding-right: 44px;
  }
  .neo-app .wall-create {
    display: none;
  }
  .neo-app .community-mark {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
  }
  .neo-app .community-intro {
    gap: 10px;
  }
  .neo-app .community-intro h2 {
    font-size: 21px;
  }
  .neo-app .diary-note > div:first-child {
    align-items: flex-start;
    flex-wrap: wrap;
    row-gap: 8px;
  }
}
/* Interactive practice shares the workspace palette. Inputs and task choices stay
   sharp and opaque; glass belongs to the surrounding surface, never the writing. */
.neo-app .practice-studio {
  --studio-ink: var(--foreground);
  --studio-sage: #dcebdc;
  --studio-paper: #fffef9;
  --studio-orange: #f1d4c4;
  --studio-yellow: #eed49a;
  color: var(--foreground);
  background: var(--glass-fill);
  border: 1px solid #ffffffeb;
  border-radius: 18px;
  box-shadow: var(--glass-shadow);
}
.neo-app .practice-studio.studio-terracotta {
  --studio-sage: #f1d4c4;
}
.neo-app .practice-studio.studio-saffron {
  --studio-sage: #f4e8c9;
}
.neo-app .practice-studio :is(.studio-help, .studio-kicker) {
  color: var(--muted-foreground);
}
.neo-app .practice-studio :is(.studio-choice, .studio-sort-card) {
  background: #fffef9;
  color: var(--foreground);
  border-color: #c4cdc2;
  box-shadow: none;
}
.neo-app .practice-studio .studio-choice:hover {
  background: #e7efe6;
}
.neo-app .practice-studio .studio-choice[aria-pressed="true"] {
  background: var(--studio-sage);
  border-color: #345b46;
  box-shadow: inset 0 0 0 1px #345b46;
}
.neo-app .practice-studio :is(.studio-feedback, .studio-dialogue, .studio-live-preview) {
  background: var(--studio-sage);
  color: var(--foreground);
  border-color: #87a987;
}
.neo-app .practice-studio .studio-ranking {
  border-color: #c4cdc2;
}
.neo-app .practice-studio .studio-compass {
  border-color: #87a987;
  background: radial-gradient(circle, #fffef9 0 46%, #dcebdc 47% 65%, #f5f3eb 66%);
}
.neo-app .practice-studio .studio-circles > div {
  background: #dcebdc;
  border-color: #87a987;
}
.neo-app .practice-studio .studio-circles .circle-other {
  background: #f4e8c9;
}
.neo-app .practice-studio .studio-breath {
  border-color: #87a987;
  background: radial-gradient(circle, #fffef9, #cfe5d2);
}
.neo-app .practice-studio :is(input, textarea, select) {
  color: var(--foreground);
  background: #fffef9;
  border-color: var(--input);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.neo-app .practice-studio .studio-choice:focus-visible,
.neo-app .practice-studio :is(input, textarea):focus-visible {
  outline-color: #345b46;
}
/* Conversation: clear opaque bubbles; no glass, skeleton blur or delayed entrance. */
.neo-app .chat-bubble,
.neo-app .fitness-workspace .chat-bubble {
  border: 1px solid #ccd6c9;
  border-radius: 14px;
  box-shadow: 0 1px 2px #243b320a;
  backdrop-filter: none;
}
.neo-app .chat-bubble.bg-primary,
.neo-app .fitness-workspace .chat-bubble.bg-primary {
  background: #dcebd7;
  color: #243b32;
}
.neo-app .fitness-workspace .chat-bubble.bg-card {
  background: #fffef9;
  color: #243b32;
}
.neo-app .chat-composer {
  background: #f5f7f0;
  border-top: 1px solid #ccd6c9;
}
.neo-app .chat-composer > div:has(textarea) {
  background: #fffef9;
  border: 1px solid #c4cdc2;
  border-radius: 24px;
  box-shadow: none;
}
.neo-app .chat-composer textarea {
  border: 0;
  border-radius: 0;
  background: transparent;
  outline-offset: 0;
}
.neo-app .chat-compose-row > div:not([hidden]) > div > button {
  border: 0;
  background: #345b46;
}
.neo-app .chat-composer [data-slot="button"][aria-label="Invia"] {
  border: 0;
  border-radius: 50%;
}
.neo-app :is(.voice-capture-panel, .voice-error) {
  border: 1px solid #b6c6b2;
  box-shadow: none;
  border-radius: 16px;
}
@media (max-width: 600px) {
  .neo-app .neo-main {
    padding-inline: 16px;
    padding-top: 20px;
  }
  .neo-app .neo-welcome .guardian-seed {
    max-width: none;
  }
  .neo-app .neo-welcome .guardian-seed > div {
    display: none;
  }
  .neo-app .neo-welcome .guardian-seed svg {
    width: 72px !important;
    height: 72px !important;
  }
  .neo-app :is(.daily-quote, .neo-dashboard .daily-quote) {
    padding: 24px 22px;
  }
  .neo-app :is(.daily-quote-heading, .neo-dashboard .daily-quote-heading) h2 {
    font-size: 15px;
  }
  .neo-app :is(.daily-quote, .neo-dashboard .daily-quote) blockquote {
    font-size: 28px;
  }
  .neo-app .neo-priority-wrap,
  .neo-app .neo-goals-wrap {
    grid-column: span 12;
  }
  .neo-app .neo-priority,
  .neo-app .neo-goals {
    min-height: 0;
    padding: 20px;
  }
  .neo-app .neo-community,
  .neo-app .neo-coach {
    grid-column: span 12;
    min-height: 0;
    padding: 20px;
  }
  .neo-app .neo-community h2 br {
    display: none;
  }
  .neo-app .neo-header .pause-header-button {
    font-size: 12px;
  }
  .neo-app .keyboard-workspace {
    border-radius: 0 !important;
  }
}
/* The token fallback covers every glass panel, including nested workspace tokens.
   Explicit surfaces below include translucent exceptions that do not use the token. */
@supports not (backdrop-filter: blur(1px)) {
  .neo-app,
  .neo-app .fitness-workspace,
  .neo-app .neo-dashboard,
  .neo-app .wellbeing-offline {
    --glass-fill: #fffcf5;
  }
  .neo-app
    :is(
      .glass-dock,
      .glass-chrome,
      .neo-header,
      .home-checkin,
      .journey-north,
      .member-profile,
      .wall-composer
    ),
  .neo-app .neo-staff > div > header {
    background: #fffcf5 !important;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}
@media (prefers-reduced-transparency: reduce) {
  .neo-app,
  .neo-app .fitness-workspace,
  .neo-app .neo-dashboard,
  .neo-app .wellbeing-offline {
    --glass-fill: #fffcf5;
  }
  .neo-app
    :is(
      .glass-dock,
      .glass-chrome,
      .neo-header,
      .home-checkin,
      .journey-editorial > section,
      .member-profile,
      .wall-composer,
      .victory-celebration,
      .victory-list > li,
      .neo-signout,
      .pause-header-button,
      .wall-post,
      .notification-settings,
      .session-ledger,
      .measurements,
      .practice-studio
    ),
  .neo-app .neo-staff > div > header {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: #fffcf5 !important;
  }
  .neo-app .neo-header .pause-header-button {
    background: #f1d4c4 !important;
  }
}
@media (forced-colors: active) {
  .neo-app .diary-intro,
  .neo-app .neo-staff .card-elev,
  .neo-app .neo-dashboard .neo-goals,
  .neo-app .neo-dashboard .today-direction,
  .neo-app .journey-editorial > :is(.journey-between, .journey-do, .journey-see),
  .neo-app .diary-note.notebook-sheet,
  .neo-app .client-settings > section {
    background: Canvas !important;
    color: CanvasText !important;
    border-color: CanvasText !important;
    box-shadow: none !important;
  }

  .neo-app
    :is(
      .glass-dock,
      .glass-chrome,
      .neo-header,
      .neo-panel,
      .card-elev,
      .home-checkin,
      .journey-editorial > section,
      .member-profile,
      .wall-post,
      .wall-composer,
      .victory-celebration,
      .daily-quote,
      .chat-bubble
    ) {
    background: Canvas !important;
    color: CanvasText !important;
    box-shadow: none !important;
    backdrop-filter: none;
    border: 1px solid CanvasText !important;
  }
  .neo-app :is(.daily-quote, .neo-dashboard .daily-quote) {
    background: Canvas !important;
    color: CanvasText !important;
    border-color: CanvasText !important;
    box-shadow: none !important;
  }
  .neo-app :is(.daily-quote-heading, .neo-dashboard .daily-quote-heading) h2 {
    background: Canvas !important;
    border-color: CanvasText !important;
    box-shadow: none !important;
  }
  .neo-app .daily-quote :is(h2, blockquote, p, time) {
    color: CanvasText !important;
  }
}

/* A short setup stays a compact dialog; keyboard mode follows the visible viewport. */
.neo-app .private-copy-dialog {
  gap: 16px;
  max-height: min(620px, calc(var(--chat-visible-height, 100dvh) - 32px));
  overflow-y: auto;
  overscroll-behavior: contain;
  scroll-padding: 20px;
}
.neo-app .private-copy-field {
  display: grid;
  gap: 8px;
  min-width: 0;
  font-weight: 600;
}
.neo-app .private-copy-field input {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  min-height: 48px;
  padding: 12px;
  font-size: 16px;
  border: 1px solid #b8c8ba;
  border-radius: 10px;
  background: #fffdf8;
  color: #263b31;
}
.neo-app .private-copy-action {
  width: 100%;
  min-height: 48px;
  white-space: normal;
  height: auto;
}
.neo-app .private-copy-dialog[data-keyboard-open="true"] {
  top: calc(var(--chat-visible-top, 0px) + 16px) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  translate: none !important;
  max-height: calc(var(--chat-visible-height, 100dvh) - 32px) !important;
}
@media (max-width: 640px) {
  .neo-app .private-copy-dialog.keyboard-workspace {
    top: calc(var(--chat-visible-top, 0px) + 16px) !important;
    left: 16px !important;
    width: calc(100% - 32px) !important;
    max-width: calc(100% - 32px) !important;
    height: auto !important;
    max-height: calc(var(--chat-visible-height, 100dvh) - 32px) !important;
    border-radius: 16px !important;
    padding: 20px !important;
  }
  .neo-app .private-copy-dialog[data-keyboard-open="true"] {
    transform: none !important;
    translate: none !important;
    top: var(--chat-visible-top, 0px) !important;
    left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: var(--chat-visible-height, 100dvh) !important;
    border-radius: 0 !important;
    padding: 16px !important;
  }
}

/* Recording uses the composer's own row: never cover the held microphone or send action. */
.neo-app .chat-composer .voice-recorder {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  min-width: 0;
  width: 100%;
}
.neo-app .chat-composer .voice-microphone {
  order: 2;
  flex: 0 0 44px;
}
.neo-app .chat-composer .voice-capture-panel {
  position: static !important;
  inset: auto !important;
  order: 1;
  flex: 1 1 0;
  min-width: 0;
  min-height: 44px;
  gap: 6px;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
}
.neo-app .chat-composer .voice-capture-panel [role="status"] {
  overflow-wrap: anywhere;
}
.neo-app .chat-composer .voice-capture-panel button {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
}
.neo-app .chat-composer .voice-error {
  position: static !important;
  inset: auto !important;
  order: 3;
  flex: 1 0 100%;
  min-width: 0;
  margin: 6px 0 0;
}
.neo-app .chat-composer .chat-compose-row textarea[hidden] {
  display: none !important;
}
.neo-app .chat-composer .chat-compose-row:has(.voice-error) {
  flex-wrap: wrap;
}
.neo-app .chat-composer .voice-compose-slot:has(.voice-error) {
  flex: 1 0 100%;
  min-width: 0;
}

/* Coaching library: a calm list of purposeful experiences, with separate preview and selection. */
.coaching-library-heading {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 20px;
}
.coaching-library-heading > svg {
  flex-shrink: 0;
  margin-top: 4px;
  color: var(--primary);
}
.coaching-library-heading h2 {
  font-size: 1.25rem;
  line-height: 1.3;
  font-weight: 750;
  letter-spacing: -0.02em;
}
.coaching-library-heading p {
  margin-top: 6px;
  line-height: 1.5;
}
.coaching-library-filters {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.coaching-library-filters label {
  display: block;
  font-size: 0.875rem;
  font-weight: 650;
}
.coaching-library-filters select {
  display: block;
  width: 100%;
  min-height: 44px;
  margin-top: 6px;
  padding: 8px;
  border: 1px solid rgba(64, 78, 66, 0.22);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.78);
  font: inherit;
}
.coaching-library-search {
  grid-column: 1/-1;
  position: relative;
}
.coaching-library-search > svg {
  width: 16px;
  height: 16px;
  display: inline-block;
  margin-right: 6px;
  vertical-align: middle;
}
.coaching-library-search input {
  margin-top: 6px;
  min-height: 44px;
}
.coaching-library-count {
  font-size: 0.875rem;
  margin: 16px 0 12px;
}
.coaching-library-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.coaching-library-card {
  padding: 18px;
  border: 1px solid rgba(64, 78, 66, 0.18);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.66);
  box-shadow: 0 3px 12px rgba(58, 72, 61, 0.045);
}
.coaching-library-card[data-selected="true"] {
  border-color: #50775b;
  box-shadow: 0 0 0 1px #50775b;
}
.coaching-library-card-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.8125rem;
  color: #465746;
}
.coaching-library-card h3 {
  margin-top: 10px;
  font-size: 1.125rem;
  font-weight: 750;
  line-height: 1.35;
}
.coaching-library-card p {
  margin-top: 8px;
  line-height: 1.5;
}
.coaching-library-card details {
  margin-top: 10px;
}
.coaching-library-card summary,
.exercise-extra-reflection summary {
  min-height: 44px;
  display: flex;
  align-items: center;
  cursor: pointer;
  font-weight: 650;
}
.coaching-library-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}
.coaching-library-actions button {
  min-height: 44px;
  flex: 1 1 150px;
  white-space: normal;
}
.exercise-extra-reflection {
  border-top: 1px solid rgba(64, 78, 66, 0.16);
  padding-top: 8px;
}
.coaching-library-preview .exercise-workspace-body > p {
  font-size: 0.875rem;
}
@media (max-width: 359px) {
  .coaching-library-filters {
    grid-template-columns: minmax(0, 1fr);
  }
  .coaching-library-card {
    padding: 14px;
  }
}

.coaching-library-filters label:not(.coaching-library-search) {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* Confirmed coaching outcomes: the same quiet, readable frame in client and staff views. */
.coaching-v3-result {
  padding: 20px;
  border: 1px solid rgba(75, 94, 74, 0.2);
  background: rgba(255, 255, 255, 0.82);
  border-radius: 14px;
  color: #28382d;
  overflow-wrap: anywhere;
}
.coaching-v3-result > * + * {
  margin-top: 16px;
}
.coaching-v3-result h3 {
  font-size: 1.2rem;
  font-weight: 750;
}
.coaching-v3-result h4 {
  font-weight: 650;
}
.coaching-v3-result-action {
  padding: 16px;
  border-left: 3px solid #87a987;
  background: #f1f5ec;
  border-radius: 4px;
}
.coaching-v3-result-action p + p {
  margin-top: 8px;
}
.coaching-v3-result summary {
  min-height: 44px;
  padding: 12px 0;
  cursor: pointer;
  font-weight: 650;
}
.coaching-v3-result summary:focus-visible {
  outline: 2px solid #49634b;
  outline-offset: 3px;
}
.coaching-v3-result details > div {
  margin-top: 14px;
}

.coaching-v3-values-summary {
  padding: 16px;
  background: #faf5e9;
  border: 1px solid rgba(139, 121, 76, 0.2);
  border-radius: 8px;
}
.coaching-v3-values-summary ol {
  margin: 10px 0;
}
.coaching-v3-values-summary li {
  padding: 6px 0;
}
.coaching-v3-values-summary p {
  font-size: 0.9rem;
  line-height: 1.5;
}

.coaching-v3-rehearsal-summary {
  padding: 16px;
  background: #f5f8f2;
  border: 1px solid rgba(75, 94, 74, 0.2);
  border-radius: 8px;
}
.coaching-v3-rehearsal-summary h5,
.coaching-v3-rehearsal-summary dt {
  margin-top: 14px;
  font-size: 0.875rem;
  font-weight: 650;
}
.coaching-v3-rehearsal-summary blockquote,
.coaching-v3-rehearsal-summary dd {
  margin-top: 6px;
  padding: 12px;
  background: rgba(255, 255, 255, 0.85);
  border-left: 2px solid #87a987;
  border-radius: 4px;
}

/* Writing workspaces: anchor to the visible viewport, never to its midpoint. */
.neo-app .community-dialog.keyboard-workspace {
  top: calc(var(--chat-visible-top, 0px) + 12px) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  translate: none !important;
  width: calc(100% - 24px) !important;
  max-width: 680px !important;
  height: calc(var(--chat-visible-height, 100dvh) - 24px) !important;
  max-height: calc(var(--chat-visible-height, 100dvh) - 24px) !important;
  display: flex !important;
  flex-direction: column;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  overscroll-behavior: contain;
  padding: 24px 20px !important;
  gap: 12px !important;
  animation: none !important;
}
.neo-app .community-dialog.keyboard-workspace > * {
  flex-shrink: 0;
}

.neo-app .diary-workspace .diary-editor {
  background: var(--paper-fill);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 20px 24px !important;
  scroll-padding-block: 24px;
}
.neo-app .diary-workspace .notebook-writing,
.neo-app .diary-workspace[data-keyboard-open="true"] .notebook-writing {
  min-height: max(240px, calc(var(--chat-visible-height, 100dvh) * 0.5)) !important;
  height: auto;
  max-height: none;
  overflow: hidden;
  resize: none;
  line-height: 32px !important;
  font-size: 17px !important;
  background-image: none !important;
  padding: 0 !important;
}
.neo-app .diary-writing-ideas summary {
  min-height: 44px;
  padding-block: 10px;
  cursor: pointer;
  color: var(--primary);
  font-size: 14px;
}
.neo-app .diary-note.notebook-sheet {
  border-radius: 3px !important;
  border-left: 1px solid var(--border) !important;
  padding: 24px 24px 24px 36px;
  box-shadow:
    3px 4px 0 #e8e9e1,
    0 8px 18px #243b3208 !important;
}
.neo-app .diary-note.notebook-sheet::before {
  left: 22px;
  background: #c87a5330;
}
.neo-app .diary-note .notebook-content {
  line-height: 32px;
  background: none;
  overflow-wrap: anywhere;
}
.neo-app .diary-note time {
  font-size: 14px;
}
@media (max-width: 420px) {
  .neo-app .diary-workspace .diary-editor {
    padding: 16px !important;
  }
  .neo-app .diary-note.notebook-sheet {
    padding-right: 18px;
  }
}

.neo-app .diary-workspace > :is(.diary-editor, .diary-actions, div:first-child, p) {
  width: 100%;
  max-width: 820px;
  margin-inline: auto;
}

.neo-app .chat-composer .chat-compose-row[data-voice-active="true"] {
  flex-wrap: wrap;
}
.neo-app .chat-composer .chat-compose-row[data-voice-active="true"] > textarea {
  flex: 1 0 100%;
}
.neo-app .chat-composer .chat-compose-row[data-voice-active="true"] > .voice-compose-slot {
  flex: 1 0 100%;
}
