/* E.C.A. Studio — Programme P1-G
   Interface mobile prioritaire des programmes guidés, journées, pratiques et progression. */

.nf-pg-wrap {
  min-height: 100dvh;
  background: var(--nf-beige);
  padding: 14px 18px 110px;
}

.nf-pg-shell {
  width: min(100%, 760px);
  margin: 0 auto;
}

.nf-pg-header {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 42px;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}

.nf-pg-back {
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .9);
  color: var(--nf-ink);
  font-size: 1.1rem;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(42, 37, 32, .1);
}

.nf-pg-eyebrow {
  font-family: var(--font-mono);
  font-size: .58rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--nf-copper);
}

.nf-pg-page-title {
  margin: 4px 0 0;
  font-family: var(--font-serif);
  font-size: clamp(1.65rem, 7vw, 2.15rem);
  font-style: italic;
  font-weight: 500;
  line-height: 1.08;
  color: var(--nf-ink);
}

.nf-pg-intro {
  margin: 0 0 18px;
  color: var(--nf-ink-mid);
  font-size: .92rem;
  line-height: 1.55;
}

.nf-pg-card,
.nf-pg-panel {
  border: 1px solid rgba(42, 37, 32, .09);
  border-radius: 20px;
  background: var(--nf-beige-light);
  box-shadow: 0 8px 28px rgba(42, 37, 32, .06);
}

.nf-pg-card {
  overflow: hidden;
}

.nf-pg-card-main {
  padding: 18px;
}

.nf-pg-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.nf-pg-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(196, 103, 66, .12);
  color: var(--nf-copper);
  font-family: var(--font-mono);
  font-size: .54rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.nf-pg-badge.is-locked {
  max-width: 62%;
  min-height: 36px;
  padding: 9px 12px;
  border-radius: 9px;
  background: var(--nf-gold, #B8860B);
  color: #fff;
  box-shadow: 0 1px 4px rgba(184, 134, 11, .22);
  font-family: var(--font-ui);
  font-size: .72rem;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0;
  text-align: center;
  text-transform: none;
  white-space: normal;
  justify-content: center;
}

.nf-pg-program-title {
  margin: 12px 0 5px;
  font-family: var(--font-serif);
  font-size: 1.42rem;
  font-style: italic;
  color: var(--nf-ink);
  line-height: 1.18;
}

.nf-pg-program-subtitle {
  margin: 0;
  color: var(--nf-ink-mid);
  font-size: .88rem;
  line-height: 1.5;
}

.nf-pg-meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 0;
}

.nf-pg-meta {
  padding: 6px 9px;
  border-radius: 10px;
  background: rgba(42, 37, 32, .045);
  color: var(--nf-ink-mid);
  font-size: .75rem;
}

.nf-pg-current {
  margin-top: 14px;
  padding: 13px 14px;
  border-radius: 14px;
  background: rgba(196, 103, 66, .08);
  border: 1px solid rgba(196, 103, 66, .16);
}

.nf-pg-current-label {
  margin-bottom: 4px;
  font-family: var(--font-mono);
  font-size: .54rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--nf-copper);
}

.nf-pg-current-title {
  color: var(--nf-ink);
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.35;
}

.nf-pg-actions {
  display: grid;
  gap: 9px;
  padding: 0 18px 18px;
}

.nf-pg-btn {
  width: 100%;
  min-height: 48px;
  padding: 12px 16px;
  border-radius: 14px;
  border: 0;
  font-family: var(--font-ui);
  font-size: .9rem;
  font-weight: 600;
  cursor: pointer;
  transition: transform .15s ease, opacity .15s ease;
}

.nf-pg-btn:active { transform: scale(.985); }
.nf-pg-btn:disabled { cursor: wait; opacity: .62; }

.nf-pg-btn-primary {
  background: var(--nf-copper);
  color: #fffaf2;
}

.nf-pg-btn-secondary {
  background: rgba(42, 37, 32, .065);
  color: var(--nf-ink);
}

.nf-pg-section-title {
  margin: 22px 0 10px;
  font-family: var(--font-mono);
  font-size: .58rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--nf-ink-mid);
}

.nf-pg-days {
  display: grid;
  gap: 10px;
}

.nf-pg-day {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 14px;
  border-radius: 16px;
  background: var(--nf-beige-light);
  border: 1px solid rgba(42, 37, 32, .08);
}

.nf-pg-day.is-current {
  border-color: rgba(196, 103, 66, .42);
  background: rgba(196, 103, 66, .075);
  box-shadow: inset 3px 0 0 var(--nf-copper);
}

.nf-pg-day.is-done { opacity: .72; }

.nf-pg-day-number {
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(42, 37, 32, .06);
  color: var(--nf-ink-mid);
  font-family: var(--font-mono);
  font-size: .7rem;
}

.nf-pg-day.is-current .nf-pg-day-number {
  background: var(--nf-copper);
  color: #fffaf2;
}

.nf-pg-day-title {
  margin: 0 0 3px;
  color: var(--nf-ink);
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.35;
}

.nf-pg-day-intention {
  margin: 0;
  color: var(--nf-ink-mid);
  font-size: .79rem;
  line-height: 1.45;
}

.nf-pg-day-meta {
  margin-top: 7px;
  color: var(--nf-copper);
  font-size: .72rem;
}

.nf-pg-panel {
  padding: 16px;
}

.nf-pg-empty,
.nf-pg-error,
.nf-pg-loading {
  padding: 26px 18px;
  text-align: center;
  color: var(--nf-ink-mid);
  font-size: .88rem;
  line-height: 1.55;
}

.nf-pg-error { color: #8d3e32; }

.nf-pg-lock-copy {
  margin: 10px 0 0;
  color: var(--nf-ink-mid);
  font-size: .82rem;
  line-height: 1.5;
}

@media (min-width: 720px) {
  .nf-pg-wrap { padding-top: 24px; }
  .nf-pg-card-main { padding: 22px; }
  .nf-pg-actions { grid-template-columns: 1fr 1fr; padding: 0 22px 22px; }
  .nf-pg-days { grid-template-columns: 1fr 1fr; }
  .nf-pg-day:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

/* Programme P1-B — journée guidée, pratique et progression */
.nf-pg-day.is-clickable { cursor: pointer; }
.nf-pg-day.is-clickable:active { transform: scale(.992); }
.nf-pg-day.is-locked-day { opacity: .64; }
.nf-pg-day-lock {
  margin-top: 6px;
  font-family: var(--font-mono);
  font-size: .54rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--nf-ink-mid);
}

.nf-pg-progress {
  margin-bottom: 14px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(255,255,255,.58);
  border: 1px solid rgba(42,37,32,.07);
}
.nf-pg-progress-top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
  font-family: var(--font-mono);
  font-size: .55rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--nf-ink-mid);
}
.nf-pg-progress-track {
  height: 6px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(42,37,32,.08);
}
.nf-pg-progress-track span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--nf-copper);
  transition: width .35s ease;
}

.nf-pg-hero-day,
.nf-pg-step-card,
.nf-pg-action-card,
.nf-pg-practice-card,
.nf-pg-bilan-card,
.nf-pg-complete-card {
  margin-bottom: 12px;
  padding: 17px;
  border-radius: 18px;
  background: var(--nf-beige-light);
  border: 1px solid rgba(42,37,32,.08);
  box-shadow: 0 7px 22px rgba(42,37,32,.045);
}
.nf-pg-hero-day {
  background:
    radial-gradient(circle at 86% 8%, rgba(196,103,66,.18), transparent 42%),
    var(--nf-beige-light);
}
.nf-pg-hero-day.is-success {
  border-color: rgba(66,121,92,.24);
  background: rgba(183,203,191,.18);
}
.nf-pg-hero-day h2,
.nf-pg-complete-card h2 {
  margin: 7px 0 8px;
  font-family: var(--font-serif);
  font-size: 1.5rem;
  font-style: italic;
  font-weight: 500;
  line-height: 1.15;
  color: var(--nf-ink);
}
.nf-pg-hero-day p,
.nf-pg-action-card p,
.nf-pg-complete-card p {
  margin: 0;
  color: var(--nf-ink-mid);
  font-size: .86rem;
  line-height: 1.58;
}
.nf-pg-step-kicker {
  font-family: var(--font-mono);
  font-size: .55rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--nf-copper);
}
.nf-pg-step-title {
  margin: 7px 0 12px;
  color: var(--nf-ink);
  font-size: .94rem;
  line-height: 1.4;
  font-weight: 600;
}
.nf-pg-space-top { margin-top: 19px; }

.nf-pg-choice-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.nf-pg-choice,
.nf-pg-recommendation,
.nf-pg-small-choice {
  border: 1px solid rgba(42,37,32,.1);
  background: rgba(255,255,255,.58);
  color: var(--nf-ink);
  cursor: pointer;
}
.nf-pg-choice {
  min-height: 44px;
  padding: 9px 10px;
  border-radius: 12px;
  font-size: .76rem;
  line-height: 1.3;
}
.nf-pg-choice.is-selected,
.nf-pg-recommendation.is-selected,
.nf-pg-small-choice.is-selected {
  border-color: var(--nf-copper);
  background: rgba(196,103,66,.1);
  box-shadow: inset 0 0 0 1px rgba(196,103,66,.22);
}

.nf-pg-range-label,
.nf-pg-text-label {
  display: block;
  margin: 15px 0 7px;
  color: var(--nf-ink-mid);
  font-size: .75rem;
  font-weight: 600;
}
.nf-pg-range-row {
  display: grid;
  grid-template-columns: minmax(0,1fr) 55px;
  align-items: center;
  gap: 12px;
}
.nf-pg-range-row input { width: 100%; accent-color: var(--nf-copper); }
.nf-pg-range-row output {
  color: var(--nf-copper);
  font-family: var(--font-mono);
  font-size: .62rem;
  text-align: right;
}

.nf-pg-recommendations { display: grid; gap: 8px; }
.nf-pg-recommendation {
  width: 100%;
  padding: 12px;
  border-radius: 13px;
  text-align: left;
}
.nf-pg-recommendation span {
  display: block;
  margin-bottom: 3px;
  font-size: .8rem;
  font-weight: 600;
}
.nf-pg-recommendation small {
  display: block;
  color: var(--nf-ink-mid);
  font-size: .69rem;
  line-height: 1.35;
}

.nf-pg-practice-card {
  display: grid;
  grid-template-columns: 52px minmax(0,1fr);
  gap: 13px;
  align-items: center;
  background: rgba(183,203,191,.17);
  border-color: rgba(66,121,92,.17);
}
.nf-pg-practice-orb {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: radial-gradient(circle at 34% 28%, #ffd5ba 0%, #cf7652 45%, #74301d 100%);
  box-shadow: 0 7px 18px rgba(116,48,29,.18);
}
.nf-pg-practice-card h3 {
  margin: 4px 0 3px;
  font-family: var(--font-serif);
  font-size: 1.02rem;
  font-style: italic;
  font-weight: 500;
  color: var(--nf-ink);
}
.nf-pg-practice-card p {
  margin: 0;
  color: var(--nf-ink-mid);
  font-size: .73rem;
}

.nf-pg-attempt {
  margin-bottom: 12px;
  padding: 13px 14px;
  border-radius: 14px;
  border: 1px solid rgba(196,139,31,.28);
  background: rgba(255,225,151,.18);
  color: var(--nf-ink);
}
.nf-pg-attempt strong { font-size: .82rem; }
.nf-pg-attempt p { margin: 5px 0 0; color: var(--nf-ink-mid); font-size: .76rem; line-height: 1.5; }

.nf-pg-textarea,
.nf-pg-input {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(42,37,32,.12);
  border-radius: 12px;
  background: rgba(255,255,255,.68);
  color: var(--nf-ink);
  font: inherit;
  font-size: .82rem;
  outline: none;
}
.nf-pg-textarea { min-height: 104px; padding: 12px; resize: vertical; margin-bottom: 13px; }
.nf-pg-input { min-height: 46px; padding: 10px 12px; }
.nf-pg-textarea:focus,
.nf-pg-input:focus { border-color: var(--nf-copper); box-shadow: 0 0 0 3px rgba(196,103,66,.09); }

.nf-pg-sticky-action {
  position: sticky;
  bottom: 82px;
  z-index: 8;
  box-shadow: 0 9px 28px rgba(116,48,29,.2);
}
.nf-pg-complete-card { text-align: center; padding-top: 22px; }
.nf-pg-complete-mark {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 11px;
  border-radius: 50%;
  background: rgba(183,203,191,.45);
  color: #35644d;
  font-size: 1.3rem;
  font-weight: 700;
}
.nf-pg-bilan-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 10px;
}
.nf-pg-bilan-grid div {
  padding: 13px 8px;
  border-radius: 13px;
  background: rgba(42,37,32,.04);
  text-align: center;
}
.nf-pg-bilan-grid strong {
  display: block;
  color: var(--nf-copper);
  font-family: var(--font-serif);
  font-size: 1.35rem;
}
.nf-pg-bilan-grid span { color: var(--nf-ink-mid); font-size: .67rem; }
.nf-pg-inline-choices { display: flex; gap: 8px; flex-wrap: wrap; }
.nf-pg-small-choice {
  min-width: 48px;
  min-height: 42px;
  padding: 8px 11px;
  border-radius: 12px;
  font-size: .78rem;
}
.nf-pg-ritual-summary {
  display: grid;
  gap: 4px;
  margin-top: 15px;
  padding: 14px;
  border-radius: 14px;
  background: rgba(183,203,191,.2);
  text-align: left;
}
.nf-pg-ritual-summary strong { color: var(--nf-ink); font-size: .86rem; }
.nf-pg-ritual-summary span,
.nf-pg-ritual-summary small { color: var(--nf-ink-mid); font-size: .73rem; }

@media (max-width: 390px) {
  .nf-pg-choice-grid { grid-template-columns: 1fr; }
  .nf-pg-hero-day,
  .nf-pg-step-card,
  .nf-pg-action-card,
  .nf-pg-practice-card,
  .nf-pg-bilan-card,
  .nf-pg-complete-card { padding: 15px; }
}


/* Programme P1-E — note facultative et dictée vocale */
.nf-pg-note-block {
  margin-top: 16px;
  padding-top: 2px;
}

.nf-pg-note-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.nf-pg-note-heading .nf-pg-text-label {
  margin-bottom: 7px;
}

.nf-pg-optional {
  flex: 0 0 auto;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(42,37,32,.06);
  color: var(--nf-ink-mid);
  font-family: var(--font-mono);
  font-size: .52rem;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.nf-pg-note-help {
  margin: 0 0 10px;
  color: var(--nf-ink-mid);
  font-size: .73rem;
  line-height: 1.48;
}

.nf-pg-voice-row {
  display: flex;
  margin: -2px 0 8px;
}

.nf-pg-voice-btn {
  width: 100%;
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 10px 14px;
  border: 1px solid rgba(196,103,66,.28);
  border-radius: 13px;
  background: rgba(196,103,66,.08);
  color: var(--nf-copper);
  font: inherit;
  font-size: .8rem;
  font-weight: 650;
  cursor: pointer;
}

.nf-pg-voice-btn:active {
  transform: scale(.988);
}

.nf-pg-voice-btn.is-recording {
  border-color: rgba(141,62,50,.42);
  background: rgba(141,62,50,.1);
  color: #8d3e32;
  box-shadow: 0 0 0 4px rgba(141,62,50,.07);
}

.nf-pg-voice-icon {
  font-size: 1rem;
  line-height: 1;
}

.nf-pg-voice-status {
  min-height: 18px;
  color: var(--nf-ink-mid);
  font-size: .68rem;
  line-height: 1.42;
}

.nf-pg-voice-status.is-recording {
  color: #8d3e32;
  font-weight: 600;
}

.nf-pg-voice-fallback {
  display: grid;
  gap: 3px;
  margin: -2px 0 8px;
  padding: 11px 12px;
  border-radius: 12px;
  background: rgba(42,37,32,.045);
  color: var(--nf-ink-mid);
}

.nf-pg-voice-fallback strong {
  color: var(--nf-ink);
  font-size: .75rem;
}

.nf-pg-voice-fallback span {
  font-size: .69rem;
  line-height: 1.42;
}

@media (min-width: 520px) {
  .nf-pg-voice-btn {
    width: auto;
    min-width: 210px;
  }
}


/* Programme P1-G — bilan intelligent et rituel */
.nf-pg-smart-bilan { display: grid; gap: 14px; }
.nf-pg-insight-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.nf-pg-insight { min-height: 86px; display: flex; flex-direction: column; justify-content: center; gap: 5px; padding: 13px; border-radius: 14px; background: rgba(255,255,255,.56); border: 1px solid rgba(42,37,32,.07); }
.nf-pg-insight strong { color: var(--nf-ink); font-size: 1.05rem; line-height: 1.15; }
.nf-pg-insight span { color: var(--nf-ink-mid); font-size: .67rem; line-height: 1.35; }
.nf-pg-insight-line { margin: 0; color: var(--nf-ink-mid); font-size: .75rem; line-height: 1.48; }
.nf-pg-recommended { display: grid; gap: 4px; padding: 14px; border-radius: 15px; background: rgba(183,203,191,.25); border: 1px solid rgba(93,128,107,.18); }
.nf-pg-recommended span { color: #526b5b; font-family: var(--font-mono); font-size: .55rem; letter-spacing: .08em; text-transform: uppercase; }
.nf-pg-recommended strong { color: var(--nf-ink); font-size: .95rem; }
.nf-pg-recommended small { color: var(--nf-ink-mid); font-size: .68rem; line-height: 1.4; }
.nf-pg-caution { padding: 12px 13px; border-radius: 13px; background: rgba(196,103,66,.08); color: var(--nf-ink-mid); font-size: .72rem; line-height: 1.45; }
.nf-pg-notes-details { border-top: 1px solid rgba(42,37,32,.08); padding-top: 10px; }
.nf-pg-notes-details summary { cursor: pointer; color: var(--nf-copper); font-size: .75rem; font-weight: 650; }
.nf-pg-notes-details blockquote { margin: 10px 0 0; padding: 10px 12px; border-left: 2px solid rgba(196,103,66,.35); color: var(--nf-ink-mid); font-size: .72rem; line-height: 1.45; }
.nf-pg-notes-details blockquote span { display: block; margin-bottom: 4px; color: var(--nf-copper); font-family: var(--font-mono); font-size: .5rem; letter-spacing: .06em; text-transform: uppercase; }
.nf-pg-choice-hint { display: block; margin-top: 3px; color: var(--nf-copper); font-family: var(--font-mono); font-size: .48rem; letter-spacing: .06em; text-transform: uppercase; }
.nf-pg-final-actions { display: grid; gap: 10px; margin-top: 14px; }
.nf-pg-next-card { margin-top: 14px; padding: 18px; border-radius: 18px; background: rgba(255,255,255,.72); border: 1px solid rgba(196,103,66,.16); box-shadow: 0 12px 30px rgba(42,37,32,.06); }
.nf-pg-next-card h3 { margin: 8px 0 7px; color: var(--nf-ink); font-family: var(--font-serif); font-size: 1.2rem; font-weight: 500; }
.nf-pg-next-card p { color: var(--nf-ink-mid); font-size: .77rem; line-height: 1.5; }
@media (min-width: 520px) { .nf-pg-final-actions { grid-template-columns: repeat(2,minmax(0,1fr)); } }


/* ACC-7-R1 — verrouillage harmonisé avec les autres bibliothèques */
.nf-pg-badge.is-locked{
  background:var(--eca-access-lock-bg,var(--nf-gold,#B8860B));
  color:var(--eca-access-lock-text,#fffaf2);
  border:1px solid var(--eca-access-lock-border,rgba(184,134,11,.55));
  box-shadow:var(--eca-access-lock-shadow,0 2px 7px rgba(122,88,6,.20));
}
.nf-pg-lock-copy{
  padding:11px 12px;
  border-left:3px solid var(--eca-access-lock-bg,var(--nf-gold,#B8860B));
  border-radius:0 10px 10px 0;
  background:rgba(184,134,11,.07);
}
