:root {
  /* ── Surfaces ── */
  --bg:        #F5F5F3;
  --sidebar-bg:#ffffff;
  --surface:   #FFFFFF;
  --surface-2: #F0F0EE;
  --surface-3: #E2E2DF;
  --border:    rgba(0,0,0,0.07);
  --border-2:  rgba(0,0,0,0.13);

  /* ── Text — WCAG AAA ── */
  --text:      #0A0A0A;   /* 19.5:1 on white ✓ */
  --text-2:    #383838;   /* 10.2:1 ✓ */
  --text-3:    #5E5E5E;   /* 7.0:1 ✓ */

  /* ── Nav text on dark sidebar ── */
  --nav-text:     rgba(255,255,255,0.55);
  --nav-text-act: #ffffff;

  /* ── Accent — pure black ── */
  --accent:    #0A0A0A;
  --accent-dk: #000000;
  --accent-lt: #888888;
  --accent-bg: #F0F0EE;
  --accent-br: #CCCCCC;

  /* ── Orb tokens — monochrome sphere ── */
  --orb-core:  #000000;
  --orb-dark:  #111111;
  --orb-mid:   #444444;
  --orb-lime:  #999999;
  --orb-glow:  rgba(0,0,0,0.25);

  /* ── Semantic — desaturated for B&W ── */
  --danger:    #1A1A1A;
  --danger-bg: #F0F0EE;
  --green:     #2A2A2A;
  --green-bg:  #EBEBEA;
  --blue:      #1A1A1A;
  --blue-bg:   #EBEBEA;
  --purple:    #2A2A2A;
  --purple-bg: #EBEBEA;

  /* ── Elevation ── */
  --shadow-sm: 0 1px 4px rgba(0,0,0,0.07),0 1px 2px rgba(0,0,0,0.05);
  --shadow:    0 4px 24px rgba(0,0,0,0.09),0 1px 4px rgba(0,0,0,0.05);
  --shadow-lg: 0 16px 56px rgba(0,0,0,0.14),0 4px 16px rgba(0,0,0,0.08);

  /* ── Radii ── */
  --r-sm:  8px;
  --r:     12px;
  --r-lg:  18px;
  --r-xl:  26px;
  --r-2xl: 36px;
  --r-pill:100px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html,body{height:100%;overflow:hidden;}
body{
  font-family:'DM Sans',sans-serif;
  background:var(--bg);
  color:var(--text);
  font-size:14.5px;
  line-height:1.6;
}

/* ─── LAYOUT ─── */
.app{display:flex;height:100vh;overflow:hidden;}

/* ─── SIDEBAR ─── */
.sidebar{
  width:230px;flex-shrink:0;
  background:#ffffff;
  border-right:1px solid rgba(0,0,0,0.1);
  display:flex;flex-direction:column;
  overflow:hidden;
}
.sidebar-inner{
  flex:1;overflow-y:auto;padding:20px 12px 0;
  scrollbar-width:none;
}
.sidebar-inner::-webkit-scrollbar{display:none;}

.brand{
  display:flex;align-items:center;gap:10px;
  padding:4px 10px 22px;
}
.brand-orb{
  width:30px;height:30px;border-radius:50%;flex-shrink:0;
  background:radial-gradient(circle at 38% 35%,#000,#222 50%,#777 100%);
  box-shadow:0 0 12px rgba(0,0,0,0.15);border:none;
}
.brand-name{
  font-family:'Fraunces',serif;
  font-size:18px;font-weight:700;letter-spacing:-0.4px;color:#0A0A0A;
}

.nav-group{margin-bottom:4px;}
.nav-label{
  font-size:8.5px;font-weight:700;letter-spacing:2.5px;
  text-transform:uppercase;color:rgba(0,0,0,0.35);
  padding:16px 12px 5px;
}
.nav-item{
  display:flex;align-items:center;gap:10px;
  padding:8px 12px;border-radius:var(--r);
  cursor:pointer;transition:all .16s;
  color:#5E5E5E;font-size:12.5px;font-weight:400;
  border:none;background:transparent;width:100%;text-align:left;
  font-family:'DM Sans',sans-serif;
}
.nav-item:hover{
  background:rgba(0,0,0,0.05);
  color:#0A0A0A;
}
.nav-item.active{
  background:#0A0A0A;
  color:#ffffff;
  font-weight:600;
  border-radius:var(--r);
}
.nav-item.active .nav-icon{stroke:#ffffff;}
.nav-item.sos-item{color:#888;}
.nav-item.sos-item:hover,.nav-item.sos-item.active{
  background:#0A0A0A;color:#fff;
}
.nav-icon{
  width:14px;height:14px;flex-shrink:0;
  stroke:currentColor;fill:none;
  stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
  overflow:visible;
}

.sidebar-footer{
  padding:14px 14px 18px;
  border-top:1px solid rgba(0,0,0,0.08);
  background:transparent;flex-shrink:0;
}
.crisis-box{
  background:rgba(0,0,0,0.04);border:1px solid rgba(0,0,0,0.1);
  border-radius:var(--r);padding:11px;
}
.crisis-box-title{font-size:9.5px;font-weight:700;color:#5E5E5E;margin-bottom:5px;letter-spacing:1px;text-transform:uppercase;}
.crisis-line{display:flex;justify-content:space-between;font-size:10.5px;color:#888;margin-bottom:2px;}
.crisis-line strong{color:#0A0A0A;}


/* ─── MAIN ─── */
.main{
  flex:1;overflow-y:auto;background:var(--bg);
  scrollbar-width:thin;scrollbar-color:rgba(0,0,0,0.1) transparent;
}
.main::-webkit-scrollbar{width:4px;}
.main::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.12);border-radius:2px;}

.page{display:none;padding:36px 44px 60px;animation:fadeUp .28s ease;min-height:100%;}
.page.active{display:block;}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}

/* ─── TYPOGRAPHY ─── */
.page-header{margin-bottom:26px;}
.page-eyebrow{
  font-size:10px;font-weight:600;letter-spacing:1.2px;
  text-transform:uppercase;color:var(--text-3);margin-bottom:7px;
}
.page-title{
  font-family:'Fraunces',serif;font-size:42px;font-weight:700;
  letter-spacing:-1.2px;color:var(--text);line-height:1.1;margin-bottom:8px;
}
.page-sub{font-size:15px;color:var(--text-2);font-weight:300;line-height:1.65;max-width:520px;}

/* ─── CARDS ─── */
.card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:22px;box-shadow:0 2px 8px rgba(17,26,16,.06),0 1px 2px rgba(17,26,16,.04);
}
.card-title{
  font-size:10.5px;font-weight:600;letter-spacing:.9px;
  text-transform:uppercase;color:var(--text-3);margin-bottom:14px;
}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}

/* ─── BUTTONS ─── */
.btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:11px 24px;border-radius:var(--r-pill);
  border:none;cursor:pointer;font-family:'DM Sans',sans-serif;
  font-size:13.5px;font-weight:600;transition:all .2s;letter-spacing:.01em;
}
.btn-primary{background:var(--text);color:#fff;}
.btn-primary:hover{background:#000000;transform:translateY(-1px);box-shadow:var(--shadow);}
.btn-accent{
  background:var(--accent);color:#fff;
  box-shadow:0 2px 10px rgba(26,46,26,0.28);
}
.btn-accent:hover{background:var(--accent-dk);transform:translateY(-1px);box-shadow:0 4px 18px rgba(26,46,26,0.38);}
.btn-ghost{background:var(--surface-2);color:var(--text-2);border:1px solid var(--border-2);}
.btn-ghost:hover{background:var(--surface-2);color:var(--text);}
.btn-danger{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(139,40,32,.18);}
.btn-lg{padding:11px 28px;font-size:14px;}
.btn-sm{padding:6px 14px;font-size:12.5px;}

/* ─── CHIP/TAG ─── */
.chip{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 12px;border-radius:var(--r-pill);
  font-size:12px;font-weight:500;cursor:pointer;
  border:1px solid var(--border-2);background:var(--surface);
  color:var(--text-2);transition:all .14s;
  font-family:'DM Sans',sans-serif;
}
.chip:hover,.chip.active{
  border-color:rgba(0,0,0,0.4);background:rgba(0,0,0,0.1);color:var(--green);
}

/* ─── INPUT ─── */
.input{
  width:100%;padding:10px 14px;
  border:1px solid var(--border-2);border-radius:var(--r);
  background:var(--surface);color:var(--text);
  font-family:'DM Sans',sans-serif;font-size:13.5px;
  outline:none;transition:border-color .15s;
}
.input:focus{border-color:var(--accent);outline:2px solid rgba(26,46,26,0.1);outline-offset:0;}
.input::placeholder{color:var(--text-3);}
textarea.input{resize:vertical;min-height:90px;line-height:1.6;}
select.input{cursor:pointer;}

hr{border:none;border-top:1px solid var(--border);margin:18px 0;}

/* ─── TOAST ─── */
.toast{
  position:fixed;bottom:22px;right:22px;
  background:var(--text);color:#fff;
  padding:11px 18px;border-radius:var(--r-pill);
  font-size:13px;font-weight:500;
  opacity:0;transform:translateY(14px);
  transition:all .28s cubic-bezier(.34,1.56,.64,1);
  pointer-events:none;z-index:1000;box-shadow:var(--shadow-lg);max-width:280px;
}
.toast.show{opacity:1;transform:translateY(0);}

/* ─── DIVIDER ─── */
.divider{height:1px;background:var(--border);margin:18px 0;}

/* ─── THINKING DOTS ─── */
.thinking-dots span{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--text-3);margin:0 2px;animation:thinkDot 1.2s ease-in-out infinite;}
.thinking-dots span:nth-child(2){animation-delay:.2s;}
.thinking-dots span:nth-child(3){animation-delay:.4s;}
@keyframes thinkDot{0%,80%,100%{transform:scale(0);opacity:.3;}40%{transform:scale(1);opacity:1;}}

/* ─── FOREST GREEN THEME ─── */
.nav-item.sos-item,.nav-item.sos-item:hover,.nav-item.sos-item.active{
  color:var(--danger);background:var(--danger-bg);
}

/* Active mood buttons */
.mood-face-btn.selected{background:var(--accent-bg);border-color:var(--accent-br);}
.mood-face-btn.selected .mood-face-lbl{color:var(--accent);font-weight:500;}
/* Stat cards */
.stat-num{color:var(--text);}
/* Affirm hero */
.affirm-hero{
  background:linear-gradient(145deg,var(--accent-bg),#FFFFFF 45%,var(--green-bg));
  border:1px solid var(--accent-br);
}
.affirm-hero::before{color:rgba(26,46,26,.06);}
.affirm-cat-label{color:var(--accent);}
.affirm-save-btn{border-color:var(--accent-br);background:var(--accent-bg);color:var(--accent);}
.affirm-save-btn:hover{background:var(--accent);color:#fff;}
/* Values */
.value-card.selected{background:var(--accent-bg);border-color:var(--accent-br);}
.value-card.selected .value-card-name{color:var(--accent);}
/* Therapy */
.mood-tag.active{background:var(--accent-bg);border-color:var(--accent-br);color:var(--accent);}
.therapy-homework-badge{color:var(--accent);}
/* Coping */
.coping-cat-anxiety{background:var(--danger-bg);color:var(--danger);}
.coping-cat-depression{background:var(--blue-bg);color:var(--blue);}
.coping-cat-adhd{background:var(--purple-bg);color:var(--purple);}
.coping-cat-anger{background:#FEF9F0;color:#6B4A00;}
.coping-cat-sleep{background:var(--surface-3);color:var(--text-2);}
.coping-cat-general{background:var(--green-bg);color:var(--green);}
.coping-use-btn:hover{background:var(--green-bg);border-color:rgba(45,104,69,.3);color:var(--green);}
/* Focus timer gradient */
#tGrad stop:first-child{stop-color:var(--accent-lt);}
#tGrad stop:last-child{stop-color:var(--orb-mid);}
/* PMR ring */
.pmr-phase-banner.tense{background:var(--accent-bg);border-top-color:var(--accent-br);border-bottom-color:var(--accent-br);}
/* Worry */
.act-hint.green{border-left-color:var(--green);}
.act-hint{border-left-color:var(--accent);}
/* BA */
.ba-mood-bar-fill{background:var(--accent);}
/* Body doubling orb */
.bd-orb{background:radial-gradient(circle at 38% 35%,#F0F0EE,#CCCCCC 60%,#BBBBBB);}
/* Prompt */
.prompt-saved-item{border-left-color:var(--accent);}
/* Trigger */
.tsev-intense{background:var(--danger-bg);color:var(--danger);}
.tsev-mod{background:#FBF6E8;color:#6B4A00;}
.tsev-mild{background:var(--green-bg);color:var(--green);}
/* Section gap */
.section-gap{margin-bottom:20px;}

/* ═══════════════════════════
   PAGE: DASHBOARD
/* ═══════════════════════════ */
.hero-card{
  border-radius:var(--r-2xl);margin-bottom:24px;
  position:relative;overflow:hidden;
  background:var(--surface);
  border:1px solid rgba(13,28,12,0.06);
  box-shadow:0 2px 16px rgba(0,0,0,0.07);
  display:grid;
  grid-template-columns:1fr 280px;
  min-height:220px;
}
.hero-card-content{
  padding:40px 44px;
  display:flex;flex-direction:column;justify-content:center;
  position:relative;z-index:2;
}
/* Dark right panel — reference's atmosphere */
.hero-card-orb{
  position:relative;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  background:var(--orb-dark);
  border-radius:0 var(--r-2xl) var(--r-2xl) 0;
}
/* Giant lime glow blooms from center */
.hero-orb-glow{
  position:absolute;
  width:380px;height:380px;border-radius:50%;
  background:radial-gradient(circle,rgba(0,0,0,0.5) 0%,rgba(42,94,20,0.35) 35%,transparent 65%);
  filter:blur(50px);
  z-index:0;
}
/* The sphere itself */
.hero-orb-sphere{
  width:160px;height:160px;border-radius:50%;
  background:radial-gradient(circle at 40% 36%,
    var(--orb-core) 0%,
    var(--orb-dark) 18%,
    #222222 38%,
    #444444 58%,
    #666666 78%,
    #888888 100%
  );
  filter:blur(10px);
  position:relative;z-index:1;
  box-shadow:0 0 80px rgba(0,0,0,0.45),0 0 180px rgba(6,14,6,0.7);
  animation:heroOrbFloat 6s ease-in-out infinite,heroOrbPulse 3s ease-in-out infinite;
}
@keyframes heroOrbFloat{
  0%,100%{transform:translateY(0) scale(1);}
  50%{transform:translateY(-8px) scale(1.03);}
}
@keyframes heroOrbPulse{
  0%,100%{box-shadow:0 0 80px rgba(0,0,0,0.45),0 0 180px rgba(6,14,6,0.7);}
  50%{box-shadow:0 0 110px rgba(0,0,0,0.6),0 0 220px rgba(6,14,6,0.8);}
}
/* Sound bars — floating in front of sphere */
.hero-canvas-bars{
  position:absolute;z-index:2;
  display:flex;align-items:flex-end;gap:5px;
}
.hero-bar{
  width:5px;border-radius:100px;
  background:rgba(255,255,255,0.85);
  animation:heroBarPulse 1.8s ease-in-out infinite;
}
.hero-bar:nth-child(1){height:18px;animation-delay:0s;}
.hero-bar:nth-child(2){height:32px;animation-delay:.12s;}
.hero-bar:nth-child(3){height:46px;animation-delay:.24s;}
.hero-bar:nth-child(4){height:30px;animation-delay:.36s;}
.hero-bar:nth-child(5){height:40px;animation-delay:.18s;}
.hero-bar:nth-child(6){height:22px;animation-delay:.30s;}
@keyframes heroBarPulse{
  0%,100%{transform:scaleY(1);opacity:.75;}
  50%{transform:scaleY(1.45);opacity:1;}
}
/* Hero text */
.hero-content{position:relative;z-index:1;}
.hero-greeting{
  font-family:'Fraunces',serif;
  font-size:36px;font-weight:700;
  letter-spacing:-1px;margin-bottom:6px;color:var(--text);
  line-height:1.1;
}
.hero-sub{
  font-size:14.5px;color:var(--text-2);
  font-weight:300;margin-bottom:24px;line-height:1.6;
}
.quick-actions{display:flex;gap:7px;flex-wrap:wrap;}
.quick-btn{
  padding:8px 15px;border-radius:var(--r-pill);
  background:rgba(0,0,0,0.07);
  border:1.5px solid rgba(0,0,0,0.1);
  cursor:pointer;font-size:12px;font-weight:500;color:var(--text-2);
  font-family:'DM Sans',sans-serif;transition:all .18s;
  display:inline-flex;align-items:center;gap:5px;
}
.quick-btn:hover{
  background:var(--text);color:#fff;
  border-color:var(--text);
  transform:translateY(-1px);
}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;}
.stat-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:18px 14px;text-align:center;
  box-shadow:0 2px 8px rgba(17,26,16,.06);
}
.stat-num{
  font-family:'Fraunces',serif;font-size:40px;font-weight:700;
  letter-spacing:-2px;line-height:1;color:var(--text);margin-bottom:5px;
}
.stat-lbl{font-size:10.5px;color:var(--text-3);font-weight:400;letter-spacing:.3px;}

.today-affirm{
  background:linear-gradient(135deg,var(--accent-bg),var(--surface));
  border:1px solid var(--accent-br);border-radius:var(--r-lg);
  padding:20px 24px;
  font-family:'Fraunces',serif;font-style:italic;
  font-size:16px;color:var(--text);line-height:1.6;
}
.today-affirm-label{
  font-family:'DM Sans',sans-serif;font-style:normal;
  font-size:10px;letter-spacing:1px;text-transform:uppercase;
  color:var(--accent);font-weight:600;margin-bottom:8px;
}

/* ═══════════════════════════
   PAGE: INSIGHTS
/* ═══════════════════════════ */
.insights-chart-wrap{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-xl);padding:24px;box-shadow:0 2px 12px rgba(17,26,16,.08);
  margin-bottom:16px;
}
.insights-chart-wrap canvas{width:100%;display:block;}
.mood-dist{display:flex;gap:8px;margin-top:8px;}
.dist-bar-wrap{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;}
.dist-bar-outer{
  width:100%;height:60px;border-radius:var(--r-sm);
  background:var(--surface-2);display:flex;align-items:flex-end;overflow:hidden;
}
.dist-bar-inner{width:100%;border-radius:var(--r-sm) var(--r-sm) 0 0;transition:height .6s;}
.dist-bar-lbl{font-size:18px;}
.dist-bar-val{font-size:11px;color:var(--text-3);}

/* ═══════════════════════════
   PAGE: SOS PANIC MODE
/* ═══════════════════════════ */
.sos-wrap{
  display:flex;align-items:center;justify-content:center;
  min-height:calc(100vh - 100px);
}
.sos-panel{
  max-width:560px;width:100%;text-align:center;
  padding:52px 48px;
  background:var(--surface);
  border-radius:var(--r-xl);
  border:1px solid var(--border);
  box-shadow:var(--shadow-lg);
  position:relative;overflow:hidden;
}
.sos-panel::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(253,244,245,0.8),rgba(238,246,241,0.6),rgba(252,248,255,0.5));
  animation:sosPulse 5s ease-in-out infinite;pointer-events:none;
}
@keyframes sosPulse{
  0%,100%{opacity:0.7;}
  50%{opacity:1;}
}
.sos-safe-text{
  font-family:'Fraunces',serif;font-size:36px;font-weight:600;
  color:var(--text);line-height:1.2;margin-bottom:12px;position:relative;z-index:1;
}
.sos-sub{font-size:15px;color:var(--text-2);font-weight:300;line-height:1.7;margin-bottom:32px;position:relative;z-index:1;}
.sos-orb-wrap{
  position:relative;width:160px;height:160px;
  margin:0 auto 28px;display:flex;align-items:center;justify-content:center;
}
.sos-orb{
  width:120px;height:120px;border-radius:50%;
  background:radial-gradient(circle at 38% 35%,#E8F4EE,#C5E0D4 60%,#A8CFC0);
  position:relative;z-index:2;
  animation:sosBreathe 8s ease-in-out infinite;
}
@keyframes sosBreathe{
  0%,100%{transform:scale(1);}
  50%{transform:scale(1.15);}
}
.sos-ring{
  position:absolute;border-radius:50%;
  border:1px solid rgba(100,180,140,0.25);
  animation:sosRing 8s ease-in-out infinite;
}
.sos-ring:nth-child(1){width:138px;height:138px;}
.sos-ring:nth-child(2){width:158px;height:158px;animation-delay:0.3s;border-color:rgba(100,180,140,0.15);}
@keyframes sosRing{
  0%,100%{transform:scale(0.97);opacity:0.7;}
  50%{transform:scale(1.05);opacity:1;}
}
.sos-phase{font-family:'Fraunces',serif;font-size:22px;color:var(--text);margin-bottom:28px;position:relative;z-index:1;min-height:34px;}
.sos-steps{
  display:flex;flex-direction:column;gap:8px;text-align:left;margin-bottom:28px;
  position:relative;z-index:1;
}
.sos-step-item{
  display:flex;align-items:center;gap:10px;
  background:var(--surface-2);border-radius:var(--r);padding:12px 14px;
}
.sos-step-num{
  width:22px;height:22px;border-radius:50%;
  background:var(--accent-bg);border:1px solid var(--accent-br);
  color:var(--accent);font-size:11px;font-weight:600;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.sos-step-text{font-size:13px;color:var(--text-2);}
.sos-crisis-line{
  font-size:12px;color:var(--text-3);position:relative;z-index:1;
}
.sos-crisis-line a{color:var(--accent);font-weight:500;text-decoration:none;}

/* ═══════════════════════════
   PAGE: BREATHING
/* ═══════════════════════════ */
.breath-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.breath-visual-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:40px 24px;
  display:flex;flex-direction:column;align-items:center;gap:24px;
  box-shadow:var(--shadow-sm);
}
.breath-orb-wrap{
  position:relative;width:240px;height:240px;
  display:flex;align-items:center;justify-content:center;
}
.breath-orb{
  width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle at 38% 33%,#f0f0ee 0%,#d8d8d4 45%,#c0c0bc 80%,#a8a8a4 100%);
  box-shadow:0 4px 32px rgba(0,0,0,0.18),inset 0 2px 8px rgba(255,255,255,0.6);
  display:flex;align-items:center;justify-content:center;flex-direction:column;
  position:relative;z-index:2;
  will-change:transform;transform:scale(1);overflow:hidden;
}
.breath-orb::after{
  content:'';position:absolute;inset:0;border-radius:50%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");
  opacity:.5;pointer-events:none;
}
.breath-halo{
  position:absolute;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(0,0,0,0.12),rgba(26,46,26,0.06) 50%,transparent 70%);
}
.breath-halo-1{width:180px;height:180px;animation:breathHalo 4s ease-in-out infinite;}
.breath-halo-2{width:210px;height:210px;animation:breathHalo 4s ease-in-out infinite .5s;opacity:.6;}
.breath-halo-3{width:220px;height:220px;animation:breathHalo 4s ease-in-out infinite 1s;opacity:.3;}
@keyframes breathHalo{
  0%,100%{transform:scale(.95);opacity:.5;}
  50%{transform:scale(1.03);opacity:1;}
}
.breath-orb-phase{font-family:'Fraunces',serif;font-size:14px;font-weight:500;color:#0A0A0A;text-align:center;letter-spacing:0.2px;}
.breath-orb-count{font-family:'Fraunces',serif;font-size:32px;font-weight:700;color:#0A0A0A;letter-spacing:-1.5px;margin-top:0;line-height:1;}
.breath-cycle-txt{font-size:13px;color:var(--text-3);}
.breath-bar{
  width:260px;height:3px;border-radius:100px;
  background:rgba(255,255,255,0.12);overflow:hidden;
}
.breath-bar-fill{height:100%;border-radius:100px;background:rgba(255,255,255,0.7);width:0%;transition:width 1s linear;}
.breath-desc{font-size:12.5px;color:var(--text-3);text-align:center;max-width:240px;line-height:1.6;}

.breath-controls-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:28px;box-shadow:var(--shadow-sm);
}
.tech-list{display:flex;flex-direction:column;gap:8px;margin-bottom:24px;}
.tech-card{
  padding:14px 16px;border-radius:var(--r);border:1px solid var(--border-2);
  cursor:pointer;transition:all .15s;background:transparent;
  text-align:left;font-family:'DM Sans',sans-serif;width:100%;
}
.tech-card:hover{background:var(--surface-2);border-color:var(--border-2);}
.tech-card.active{
  background:var(--accent-bg);border-color:var(--accent-br);
}
.tech-card-name{font-size:13.5px;font-weight:500;color:var(--text);margin-bottom:2px;}
.tech-card-desc{font-size:11.5px;color:var(--text-3);}
.tech-card.active .tech-card-name{color:var(--accent);}

/* ═══════════════════════════
   PAGE: GROUNDING
/* ═══════════════════════════ */
.ground-progress{display:flex;gap:6px;margin-bottom:28px;align-items:center;}
.ground-step-dot{
  height:4px;border-radius:100px;transition:all .3s;
  background:var(--surface-3);flex:1;
}
.ground-step-dot.done{background:var(--green);}
.ground-step-dot.active{background:var(--accent);}
.ground-big-num{
  font-family:'Fraunces',serif;font-size:80px;
  font-weight:600;letter-spacing:-3px;
  color:rgba(0,0,0,0.06);line-height:1;margin-bottom:-8px;
}
.ground-sense-head{
  font-family:'Fraunces',serif;font-size:28px;
  font-weight:600;color:var(--text);margin-bottom:10px;
}
.ground-prompt{font-size:15px;color:var(--text-2);font-weight:300;line-height:1.7;margin-bottom:24px;}
.ground-input-list{display:flex;flex-direction:column;gap:8px;margin-bottom:28px;}
.ground-input-row{display:flex;align-items:center;gap:10px;}
.ground-input-bullet{
  width:24px;height:24px;border-radius:50%;
  border:1.5px solid var(--border-2);background:var(--surface-2);
  flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-size:10px;color:var(--text-3);font-weight:600;
}
.ground-input-row.filled .ground-input-bullet{
  background:var(--green-bg);border-color:rgba(78,140,106,.4);color:var(--green);
}
.ground-done-card{
  text-align:center;padding:40px;
  background:var(--green-bg);border:1px solid rgba(78,140,106,.2);
  border-radius:var(--r-lg);
}
.ground-done-card h3{font-family:'Fraunces',serif;font-size:24px;color:var(--text);margin-bottom:8px;}
.ground-done-card p{font-size:14px;color:var(--text-2);font-weight:300;}

/* ═══════════════════════════
   PAGE: BODY SCAN
/* ═══════════════════════════ */
.body-scan-layout{display:grid;grid-template-columns:220px 1fr;gap:20px;}
.body-map{
  background:var(--accent);border:1px solid rgba(255,255,255,0.06);
  border-radius:var(--r-xl);padding:20px;text-align:center;
  box-shadow:var(--shadow);
}
.body-figure{
  position:relative;display:inline-block;
  width:120px;margin:0 auto 16px;
}
.body-zone{
  position:absolute;border-radius:var(--r-pill);
  cursor:pointer;transition:all .2s;border:2px solid transparent;
}
.body-zone:hover{opacity:0.85;}
.body-zone.active{border-color:var(--accent);box-shadow:0 0 0 3px rgba(26,46,26,.15);}
.body-area-list{display:flex;flex-direction:column;gap:4px;}
.body-area-btn{
  padding:8px 10px;border-radius:var(--r-sm);border:1px solid transparent;
  cursor:pointer;text-align:left;font-family:'DM Sans',sans-serif;
  font-size:12.5px;color:var(--text-2);background:transparent;transition:all .15s;
}
.body-area-btn:hover{background:var(--surface-2);color:var(--text);}
.body-area-btn.active{
  background:var(--accent-bg);border-color:var(--accent-br);color:var(--accent);font-weight:500;
}
.scan-content{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:32px;box-shadow:var(--shadow-sm);
}
.scan-area-title{font-family:'Fraunces',serif;font-size:24px;font-weight:600;margin-bottom:10px;}
.scan-instruction{font-size:14.5px;color:var(--text-2);line-height:1.8;margin-bottom:20px;font-weight:300;}
.scan-timer{
  font-family:'Fraunces',serif;font-size:48px;letter-spacing:-2px;
  color:var(--text);margin-bottom:20px;
}
.tension-scale{margin-bottom:20px;}
.tension-label{font-size:12px;color:var(--text-3);margin-bottom:8px;font-weight:500;}
.tension-row{display:flex;gap:6px;}
.tension-dot{
  width:28px;height:28px;border-radius:50%;border:1.5px solid var(--border-2);
  cursor:pointer;transition:all .15s;background:var(--surface-2);
  display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--text-3);
}
.tension-dot.selected{background:var(--accent);border-color:var(--accent);color:#fff;}
.scan-note-input{margin-bottom:16px;}

/* ═══════════════════════════
   PAGE: MOOD
/* ═══════════════════════════ */
.mood-scale{display:flex;gap:8px;margin-bottom:20px;}
.mood-face-btn{
  flex:1;padding:16px 8px;border-radius:var(--r-lg);border:1.5px solid var(--border);
  background:var(--surface);cursor:pointer;transition:all .18s;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  box-shadow:0 1px 4px rgba(17,26,16,.05);
}
.mood-face-btn:hover{border-color:var(--accent-br);background:var(--accent-bg);transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(26,46,26,.1);}
.mood-face-btn:hover{background:var(--surface-2);}
.mood-face-btn.selected{background:var(--accent-bg);border-color:var(--accent-br);}
.mood-emoji-big{font-size:26px;}
.mood-face-lbl{font-size:11px;color:var(--text-3);}
.mood-face-btn.selected .mood-face-lbl{color:var(--accent);font-weight:500;}
.mood-hist-item{
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;border-radius:var(--r);
  border:1px solid var(--border);background:var(--surface);
  margin-bottom:8px;transition:border-color .15s;
}
.mood-hist-item:hover{border-color:var(--border-2);}
.mood-hist-emoji{font-size:22px;}
.mood-hist-info{flex:1;}
.mood-hist-date{font-size:11px;color:var(--text-3);margin-bottom:2px;}
.mood-hist-note{font-size:13px;color:var(--text-2);}
.mood-hist-score{
  width:24px;height:24px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:600;
}

/* ═══════════════════════════
   PAGE: GRATITUDE
/* ═══════════════════════════ */
.gratitude-3{display:flex;flex-direction:column;gap:12px;margin-bottom:20px;}
.gratitude-input-row{display:flex;align-items:flex-start;gap:12px;}
.gratitude-num{
  width:28px;height:28px;border-radius:50%;flex-shrink:0;
  background:var(--accent);
  color:#fff;font-size:12px;font-weight:600;
  display:flex;align-items:center;justify-content:center;margin-top:8px;
}
.gratitude-hist-item{
  padding:14px 16px;border-radius:var(--r);border:1px solid var(--border);
  background:var(--surface);margin-bottom:10px;
}
.gratitude-hist-date{font-size:11px;color:var(--text-3);margin-bottom:8px;}
.gratitude-hist-things{display:flex;flex-direction:column;gap:4px;}
.gratitude-thing{
  display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text-2);
}
.gratitude-thing::before{content:'✦';color:var(--accent);font-size:10px;margin-top:3px;flex-shrink:0;}

/* ═══════════════════════════
   PAGE: THOUGHT REFRAMING
/* ═══════════════════════════ */
.cbf-flow{display:flex;flex-direction:column;gap:12px;}
.cbf-step{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);padding:18px;box-shadow:var(--shadow-sm);
}
.cbf-step-label{
  display:flex;align-items:center;gap:8px;
  font-size:11px;font-weight:600;letter-spacing:.8px;
  text-transform:uppercase;color:var(--text-3);margin-bottom:10px;
}
.cbf-badge{
  width:20px;height:20px;border-radius:50%;
  background:var(--surface-3);color:var(--text-2);
  font-size:10px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
}
.cbf-output{
  background:var(--green-bg);border:1px solid rgba(78,140,106,.2);
  border-radius:var(--r);padding:18px;
  font-family:'Fraunces',serif;font-style:italic;font-size:15px;
  color:var(--text);line-height:1.7;min-height:80px;
}
.cbf-output.loading{
  display:flex;align-items:center;gap:8px;font-style:normal;
  font-family:'DM Sans',sans-serif;font-size:13px;color:var(--text-3);
}
.thinking-dots span{display:inline-block;animation:thinkDot 1.2s ease-in-out infinite;}
.thinking-dots span:nth-child(2){animation-delay:.2s;}
.thinking-dots span:nth-child(3){animation-delay:.4s;}
@keyframes thinkDot{0%,80%,100%{transform:scale(0);}40%{transform:scale(1);}}

/* ═══════════════════════════
   PAGE: FOCUS TIMER
/* ═══════════════════════════ */
.focus-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.timer-card{
  background:var(--accent);border:1px solid rgba(255,255,255,0.06);
  border-radius:var(--r-xl);padding:36px 24px;
  display:flex;flex-direction:column;align-items:center;gap:20px;
  box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,0.04);
  position:relative;overflow:hidden;
}
.timer-card::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 30%,rgba(0,0,0,0.08),transparent 65%);
  pointer-events:none;
}
.timer-mode-row{display:flex;gap:6px;margin-bottom:4px;}
.tmode-btn{
  padding:6px 14px;border-radius:var(--r-pill);
  border:1px solid var(--border-2);background:transparent;
  font-family:'DM Sans',sans-serif;
  font-size:12px;color:var(--text-2);cursor:pointer;transition:all .15s;
}
.tmode-btn.active{background:var(--text);color:#fff;border-color:var(--text);}
.timer-ring-wrap{
  position:relative;width:220px;height:220px;
  display:flex;align-items:center;justify-content:center;
}
.timer-svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);}
.timer-track{fill:none;stroke:rgba(0,0,0,0.1);stroke-width:5;}
.timer-fill{
  fill:none;stroke-width:5;stroke-linecap:round;
  stroke:url(#tGrad);
  stroke-dasharray:659;stroke-dashoffset:0;
  transition:stroke-dashoffset 1s linear;
}
.timer-time{
  font-family:'Fraunces',serif;font-size:52px;font-weight:600;
  letter-spacing:-2px;color:var(--text);line-height:1;
}
.timer-session-info{font-size:12px;color:var(--text-3);}
.timer-btn-row{display:flex;gap:8px;}
.task-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:24px;box-shadow:var(--shadow-sm);
}
.task-add-row{display:flex;gap:8px;margin-bottom:16px;}
.task-item{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;border-radius:var(--r);margin-bottom:6px;
  border:1px solid var(--border);background:var(--surface);transition:all .15s;
}
.task-item:hover{border-color:var(--border-2);}
.task-item.done{opacity:.55;}
.task-cb{
  width:18px;height:18px;border-radius:50%;
  border:1.5px solid var(--border-2);background:transparent;
  cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-size:10px;color:transparent;transition:all .15s;
}
.task-cb.checked{background:var(--green);border-color:var(--green);color:#fff;}
.task-txt{flex:1;font-size:13px;color:var(--text);}
.task-item.done .task-txt{text-decoration:line-through;color:var(--text-3);}
.task-del{background:none;border:none;cursor:pointer;color:var(--text-3);font-size:14px;opacity:.5;}
.task-del:hover{opacity:1;color:var(--danger);}

/* ═══════════════════════════
   PAGE: MEDITATION
/* ═══════════════════════════ */
.med-center{
  max-width:480px;margin:0 auto;text-align:center;
  padding-top:20px;
}
.med-orb-wrap{
  position:relative;width:200px;height:200px;
  margin:0 auto 28px;display:flex;align-items:center;justify-content:center;
}
.med-orb{
  width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle at 38% 33%,#f0f0ee 0%,#d8d8d4 45%,#c0c0bc 80%,#a8a8a4 100%);
  box-shadow:0 4px 32px rgba(0,0,0,0.18),inset 0 2px 8px rgba(255,255,255,0.6);
  position:relative;z-index:2;
  animation:medOrbFloat 5s ease-in-out infinite;
  overflow:hidden;
}
.med-orb::after{
  content:'';position:absolute;inset:0;border-radius:50%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");
  opacity:.5;pointer-events:none;
}
@keyframes medOrbFloat{
  0%,100%{transform:scale(1) translateY(0);filter:blur(7px);}
  50%{transform:scale(1.04) translateY(-5px);filter:blur(8px);}
}
@keyframes medFloat{
  0%,100%{transform:scale(1) translateY(0);}
  50%{transform:scale(1.05) translateY(-6px);}
}
.med-halo{
  position:absolute;border-radius:50%;
  background:radial-gradient(circle,rgba(150,180,220,0.12),transparent 70%);
  animation:medFloat 5s ease-in-out infinite;
}
.med-halo-1{width:160px;height:160px;animation-delay:.4s;}
.med-halo-2{width:190px;height:190px;animation-delay:.8s;animation-duration:6s;}
.med-timer{
  font-family:'Fraunces',serif;font-size:56px;letter-spacing:-2px;
  color:var(--text);margin-bottom:12px;
}
.dur-row{display:flex;gap:8px;justify-content:center;margin-bottom:20px;}
.dur-btn{
  padding:7px 16px;border-radius:var(--r-pill);
  border:1px solid var(--border-2);background:transparent;
  font-family:'DM Sans',sans-serif;font-size:12.5px;color:var(--text-2);cursor:pointer;transition:all .15s;
}
.dur-btn.active{background:var(--surface-3);border-color:var(--border-2);color:var(--text);font-weight:500;}
.med-prompt{
  font-family:'Fraunces',serif;font-style:italic;font-size:17px;
  color:var(--text-2);line-height:1.6;min-height:60px;transition:opacity .5s;
  margin-bottom:24px;
}
.med-btns{display:flex;gap:8px;justify-content:center;}

/* ═══════════════════════════
   PAGE: HABITS
/* ═══════════════════════════ */
.habits-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.week-days{display:flex;gap:4px;font-size:10px;color:var(--text-3);margin-bottom:4px;}
.week-day{width:32px;text-align:center;font-weight:500;}
.habit-row{
  display:flex;align-items:center;gap:12px;
  padding:10px 0;border-bottom:1px solid var(--border);
}
.habit-row:last-child{border-bottom:none;}
.habit-icon{display:none;}
.habit-name{flex:1;font-size:13.5px;color:var(--text);}
.habit-dots{display:flex;gap:4px;flex-shrink:0;}
.habit-dot{
  width:32px;height:32px;border-radius:var(--r-sm);border:1.5px solid var(--border-2);
  background:var(--surface-2);cursor:pointer;transition:all .15s;
  flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:10px;color:transparent;
}
.habit-dot:hover{border-color:var(--accent-br);background:var(--accent-bg);}
.habit-dot.done{background:var(--green);border-color:var(--green);color:#fff;}
.habit-dot.today{border-color:var(--accent-br);}
.habit-streak{font-size:11px;color:var(--text-3);min-width:32px;text-align:center;}
.add-habit-row{display:flex;gap:8px;margin-top:16px;}

/* ═══════════════════════════
   PAGE: SLEEP
/* ═══════════════════════════ */
.sleep-form{margin-bottom:24px;}
.sleep-quality-row{display:flex;gap:8px;margin-bottom:16px;}
.sq-btn{
  flex:1;padding:10px;border-radius:var(--r);border:1.5px solid var(--border-2);
  background:transparent;cursor:pointer;font-family:'DM Sans',sans-serif;
  font-size:12px;color:var(--text-2);text-align:center;transition:all .15s;
}
.sq-btn:hover{background:var(--surface-2);}
.sq-btn.selected{background:var(--accent-bg);border-color:var(--accent-br);color:var(--accent);font-weight:500;}
.sleep-hours-display{
  font-family:'Fraunces',serif;font-size:52px;font-weight:600;
  letter-spacing:-2px;color:var(--text);text-align:center;
  line-height:1;margin:8px 0;
}
.hours-slider{
  width:100%;-webkit-appearance:none;appearance:none;
  height:4px;border-radius:100px;background:var(--surface-3);outline:none;cursor:pointer;
}
.hours-slider::-webkit-slider-thumb{
  -webkit-appearance:none;width:18px;height:18px;border-radius:50%;
  background:var(--accent);cursor:pointer;box-shadow:0 2px 6px rgba(123,56,64,0.3);
}
.sleep-hist-item{
  padding:12px 14px;border-radius:var(--r);border:1px solid var(--border);
  background:var(--surface);margin-bottom:8px;display:flex;align-items:center;gap:12px;
}
.sleep-hist-date{font-size:11px;color:var(--text-3);flex:1;}
.sleep-hist-hours{font-family:'Fraunces',serif;font-size:20px;font-weight:600;color:var(--text);margin-right:6px;}
.sleep-hist-unit{font-size:11px;color:var(--text-3);}
.sleep-hist-quality{font-size:14px;}

/* ═══════════════════════════
   PAGE: SELF-CARE
/* ═══════════════════════════ */
.selfcare-section{margin-bottom:24px;}
.selfcare-sec-title{
  font-size:11px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;
  color:var(--text-3);margin-bottom:12px;
}
.selfcare-item{
  display:flex;align-items:center;gap:10px;
  padding:11px 14px;border-radius:var(--r);border:1px solid var(--border);
  background:var(--surface);margin-bottom:6px;cursor:pointer;transition:all .15s;
}
.selfcare-item:hover{border-color:var(--border-2);}
.selfcare-item.done{background:var(--green-bg);border-color:rgba(78,140,106,.25);}
.selfcare-check{
  width:18px;height:18px;border-radius:4px;border:1.5px solid var(--border-2);
  background:transparent;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-size:11px;color:transparent;transition:all .15s;
}
.selfcare-item.done .selfcare-check{background:var(--green);border-color:var(--green);color:#fff;}
.selfcare-txt{flex:1;font-size:13.5px;color:var(--text);}
.selfcare-item.done .selfcare-txt{text-decoration:line-through;color:var(--text-3);}
.selfcare-icon{font-size:16px;}

/* ═══════════════════════════
   PAGE: EMOTIONS
/* ═══════════════════════════ */
.emotions-layout{display:grid;grid-template-columns:1fr 300px;gap:20px;}
.emotion-wheel-wrap{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:24px;text-align:center;
  box-shadow:var(--shadow-sm);
}
.emotion-detail-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:24px;box-shadow:var(--shadow-sm);
  display:flex;flex-direction:column;gap:12px;
}
.emotion-selected-name{
  font-family:'Fraunces',serif;font-size:26px;font-weight:600;color:var(--text);
}
.emotion-selected-parent{font-size:12px;color:var(--text-3);font-weight:500;}
.emotion-description{font-size:13.5px;color:var(--text-2);line-height:1.7;font-weight:300;}
.emotion-coping-list{display:flex;flex-direction:column;gap:6px;}
.emotion-coping-item{
  display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text-2);
  background:var(--surface-2);padding:9px 12px;border-radius:var(--r-sm);
}
.emotion-coping-item::before{content:'→';color:var(--accent);flex-shrink:0;margin-top:1px;}

/* ═══════════════════════════
   PAGE: CRISIS
/* ═══════════════════════════ */
.crisis-header-box{
  background:linear-gradient(135deg,#FEF0EE,#FEF6F4);
  border:1px solid rgba(139,40,32,0.12);border-radius:var(--r-xl);
  padding:28px 32px;margin-bottom:20px;
}
.crisis-header-box h2{font-family:'Fraunces',serif;font-size:24px;margin-bottom:8px;}
.crisis-resource-card{
  padding:18px 20px;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);box-shadow:var(--shadow-sm);margin-bottom:10px;
}
.crisis-resource-name{font-size:14px;font-weight:500;color:var(--text);margin-bottom:2px;}
.crisis-resource-num{font-family:'Fraunces',serif;font-size:20px;font-weight:600;color:var(--accent);}
.crisis-resource-desc{font-size:12px;color:var(--text-3);margin-top:2px;}
.crisis-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}

/* ─── SECTION SPACING ─── */
.section-gap{margin-bottom:20px;}

/* ═══════════════════════════
   PAGE: WORRY JOURNAL
/* ═══════════════════════════ */
.worry-layout{display:grid;grid-template-columns:1fr 360px;gap:20px;}
.wstep{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);margin-bottom:10px;transition:box-shadow .2s;}
.wstep:focus-within{box-shadow:var(--shadow);border-color:var(--accent-br);}
.wstep-header{display:flex;align-items:center;gap:10px;padding:13px 18px;background:var(--surface-2);border-bottom:1px solid var(--border);}
.wstep-num{width:20px;height:20px;border-radius:50%;background:var(--surface);border:1.5px solid var(--border-2);font-size:10px;font-weight:700;color:var(--text-2);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.wstep.complete .wstep-num{background:var(--green);border-color:var(--green);color:#fff;}
.wstep-label{font-size:10.5px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:var(--text-3);}
.wstep.complete .wstep-label{color:var(--green);}
.wstep-body{padding:16px 18px;}
.act-btn-row{display:flex;gap:8px;margin-bottom:10px;}
.act-btn{flex:1;padding:10px;border-radius:var(--r);border:1.5px solid var(--border-2);background:transparent;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;color:var(--text-2);transition:all .15s;}
.act-btn:hover{background:var(--surface-2);}
.act-btn.yes{border-color:rgba(78,140,106,.4);background:var(--green-bg);color:var(--green);}
.act-btn.no{border-color:var(--accent-br);background:var(--accent-bg);color:var(--accent);}
.act-hint{font-size:12.5px;color:var(--text-2);line-height:1.65;background:var(--surface-2);border-radius:var(--r);padding:11px 13px;border-left:3px solid var(--accent);margin-top:8px;display:none;}
.act-hint.show{display:block;}
.act-hint.green{border-left-color:var(--green);}
.cog-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:12px;}
.cog-q{background:var(--surface-2);border-radius:var(--r);padding:10px 12px;font-size:12px;color:var(--text-2);line-height:1.5;cursor:pointer;border:1px solid transparent;transition:all .15s;}
.cog-q:hover{background:var(--accent-bg);border-color:var(--accent-br);color:var(--accent);}
.cog-q.sel{background:var(--accent-bg);border-color:var(--accent-br);color:var(--text);font-style:italic;}
.sched-row{display:flex;gap:8px;align-items:center;margin-bottom:8px;}
.sched-hint{font-size:12px;color:var(--text-3);line-height:1.55;margin-top:6px;padding:10px 12px;background:var(--surface-2);border-radius:var(--r);font-style:italic;}
.sched-item{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--surface-2);border-radius:var(--r);border:1px solid var(--border);margin-bottom:6px;}
.sched-text{flex:1;font-size:13px;color:var(--text-2);}
.sched-time{font-size:11px;color:var(--text-3);background:var(--surface);padding:3px 8px;border-radius:var(--r-pill);border:1px solid var(--border-2);}
.sched-del{background:none;border:none;cursor:pointer;color:var(--text-3);font-size:13px;transition:color .15s;}
.sched-del:hover{color:var(--danger);}
.worry-reframe{background:var(--green-bg);border:1px solid rgba(78,140,106,.2);border-radius:var(--r-lg);padding:20px;font-family:'Fraunces',serif;font-style:italic;font-size:15.5px;color:var(--text);line-height:1.7;min-height:130px;}
.worry-reframe.loading{font-family:'DM Sans',sans-serif;font-style:normal;font-size:13px;color:var(--text-3);display:flex;align-items:center;gap:10px;}
.thinking-dots span{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--text-3);margin:0 2px;animation:thinkDot 1.2s ease-in-out infinite;}
.thinking-dots span:nth-child(2){animation-delay:.2s;}
.thinking-dots span:nth-child(3){animation-delay:.4s;}
@keyframes thinkDot{0%,80%,100%{transform:scale(0);opacity:.3;}40%{transform:scale(1);opacity:1;}}
.worry-archive-item{padding:12px 14px;background:var(--surface-2);border-radius:var(--r);border-left:3px solid var(--border-2);margin-bottom:7px;transition:border-color .15s;}
.worry-archive-item:hover{border-left-color:var(--accent);}
.worry-archive-date{font-size:10.5px;color:var(--text-3);margin-bottom:3px;}
.worry-archive-text{font-size:13px;color:var(--text-2);line-height:1.5;}

/* ═══════════════════════════
   PAGE: PMR
/* ═══════════════════════════ */
.pmr-layout{display:grid;grid-template-columns:1fr 300px;gap:20px;align-items:start;}
.pmr-track-bar{display:grid;grid-template-columns:repeat(10,1fr);gap:5px;margin-bottom:20px;}
.pmr-track-pip{height:4px;border-radius:100px;background:var(--surface-3);transition:background .3s;}
.pmr-track-pip.done{background:var(--green);}
.pmr-track-pip.active{background:var(--accent);}
.pmr-step-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden;display:none;}
.pmr-step-card.active{display:block;animation:fadeUp .3s ease;}
.pmr-step-top{padding:22px 24px 18px;}
.pmr-step-index{font-family:'Fraunces',serif;font-size:64px;font-weight:600;letter-spacing:-3px;color:rgba(0,0,0,0.05);line-height:1;margin-bottom:-4px;}
.pmr-step-name{font-family:'Fraunces',serif;font-size:24px;font-weight:600;color:var(--text);}
.pmr-phase-banner{padding:13px 24px;display:flex;align-items:center;gap:11px;}
.pmr-phase-banner.idle{background:var(--surface-2);border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.pmr-phase-banner.tense{background:var(--accent-bg);border-top:1px solid var(--accent-br);border-bottom:1px solid var(--accent-br);}
.pmr-phase-banner.release{background:var(--green-bg);border-top:1px solid rgba(78,140,106,.2);border-bottom:1px solid rgba(78,140,106,.2);}
.pmr-phase-icon{font-size:18px;}
.pmr-phase-text{font-size:13.5px;font-weight:500;color:var(--text);flex:1;line-height:1.45;}
.pmr-instruction{padding:16px 24px 22px;font-size:14px;color:var(--text-2);font-weight:300;line-height:1.75;}
.pmr-timer-wrap{
  position:relative;width:200px;height:200px;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto;
}
.pmr-sphere{
  position:absolute;width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle at 38% 33%,#f0f0ee 0%,#d8d8d4 45%,#c0c0bc 80%,#a8a8a4 100%);
  box-shadow:0 4px 32px rgba(0,0,0,0.18),inset 0 2px 8px rgba(255,255,255,0.6);
  overflow:hidden;
}
.pmr-sphere::after{
  content:'';position:absolute;inset:0;border-radius:50%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");
  opacity:.5;pointer-events:none;
}
.pmr-timer-svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);}
.pmr-timer-track{fill:none;stroke:var(--surface-2);stroke-width:6;}
.pmr-timer-fill{fill:none;stroke:#0A0A0A;stroke-width:6;stroke-linecap:round;stroke-dasharray:471;stroke-dashoffset:0;transition:stroke-dashoffset .5s linear;}
.pmr-timer-num{font-family:'Fraunces',serif;font-size:44px;font-weight:700;letter-spacing:-2px;color:#0A0A0A;line-height:1;}
.pmr-timer-lbl{font-size:11px;font-weight:600;color:rgba(0,0,0,0.45);letter-spacing:1px;text-transform:uppercase;margin-top:4px;}
.pmr-complete-card{display:none;text-align:center;padding:40px 28px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);}
.pmr-complete-card.show{display:block;animation:fadeUp .4s ease;}
.pmr-info-item{display:flex;gap:11px;align-items:flex-start;padding:11px 13px;background:var(--surface-2);border-radius:var(--r);margin-bottom:8px;}
.pmr-info-icon{font-size:17px;flex-shrink:0;margin-top:1px;}
.pmr-info-text{font-size:12.5px;color:var(--text-2);line-height:1.55;}
.pmr-info-text strong{color:var(--text);font-weight:500;}

/* ═══════════════════════════
   PAGE: BEHAVIORAL ACTIVATION
/* ═══════════════════════════ */
.ba-top{display:grid;grid-template-columns:280px 1fr;gap:16px;margin-bottom:16px;}
.ba-activity-item{display:flex;align-items:center;gap:9px;padding:8px 11px;border-radius:var(--r);border:1px solid var(--border);background:var(--surface);margin-bottom:5px;transition:all .15s;}
.ba-activity-item:hover{border-color:var(--border-2);}
.ba-activity-emoji{font-size:17px;}
.ba-activity-name{flex:1;font-size:13px;color:var(--text);}
.ba-activity-cat{font-size:10px;font-weight:600;padding:2px 8px;border-radius:var(--r-pill);}
.ba-cat-pleasure{background:var(--accent-bg);color:var(--accent);}
.ba-cat-mastery{background:#EDF2F8;color:#4A7BA8;}
.ba-cat-social{background:var(--green-bg);color:var(--green);}
.ba-cat-physical{background:#FEF9F0;color:#6B4A00;}
.ba-cat-rest{background:#F2EFF8;color:#7B6DAA;}
.ba-cat-creative{background:#FEF0ED;color:var(--danger);}
.ba-planner-grid{display:grid;gap:5px;}
.ba-day-header{font-size:11px;font-weight:600;color:var(--text-3);text-align:center;padding:5px 3px;border-radius:8px;}
.ba-day-header.today{background:var(--accent-bg);color:var(--accent);}
.ba-slot{min-height:50px;border-radius:var(--r);border:1.5px dashed var(--border-2);cursor:pointer;transition:all .2s;padding:6px 8px;display:flex;flex-direction:column;justify-content:center;}
.ba-slot:hover{background:var(--surface-2);border-style:solid;}
.ba-slot.filled{background:var(--accent-bg);border-color:var(--acc-br, var(--accent-br));border-style:solid;}
.ba-slot.done{background:var(--green-bg);border-color:rgba(78,140,106,.3);border-style:solid;}
.ba-slot-name{font-size:11.5px;font-weight:500;color:var(--text);line-height:1.3;}
.ba-slot-meta{font-size:10px;color:var(--text-3);margin-top:2px;}
.ba-slot-plus{font-size:14px;color:var(--text-3);opacity:.4;text-align:center;width:100%;}
.ba-time-label{font-size:10.5px;color:var(--text-3);font-weight:500;padding-top:7px;white-space:nowrap;}
.ba-mood-bar-row{display:flex;align-items:center;gap:10px;margin-bottom:7px;}
.ba-mood-bar-label{font-size:12px;color:var(--text-2);min-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ba-mood-bar-track{flex:1;height:7px;background:var(--surface-3);border-radius:100px;overflow:hidden;}
.ba-mood-bar-fill{height:100%;border-radius:100px;transition:width .5s;}
.ba-mood-bar-emoji{font-size:14px;}
.ba-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.2);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s;}
.ba-modal-overlay.open{opacity:1;pointer-events:all;}
.ba-modal-box{background:var(--surface);border-radius:var(--r-xl);padding:26px;width:360px;box-shadow:var(--shadow-lg);transform:scale(.96);transition:transform .2s;}
.ba-modal-overlay.open .ba-modal-box{transform:scale(1);}
.ba-mood-pip-btn{flex:1;padding:9px 5px;border-radius:var(--r);border:1.5px solid var(--border-2);background:transparent;cursor:pointer;font-size:18px;text-align:center;transition:all .15s;}
.ba-mood-pip-btn:hover{background:var(--surface-2);}
.ba-mood-pip-btn.sel{background:var(--accent-bg);border-color:var(--accent-br);}

/* ═══════════════════════════
   PAGE: BRAIN DUMP
/* ═══════════════════════════ */
.dump-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.dump-textarea{width:100%;min-height:220px;padding:16px;border:1.5px solid rgba(0,0,0,0.1);border-radius:var(--r-xl);background:var(--surface);font-family:'DM Sans',sans-serif;font-size:14px;color:var(--text);outline:none;line-height:1.8;resize:none;transition:border-color .2s;}
.dump-textarea:focus{border-color:var(--accent);}
.dump-textarea::placeholder{color:var(--text-3);}
.dump-item{display:flex;align-items:flex-start;gap:10px;padding:10px 13px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);margin-bottom:6px;transition:border-color .15s;}
.dump-item:hover{border-color:var(--border-2);}
.dump-cat-badge{font-size:10px;font-weight:600;padding:2px 8px;border-radius:var(--r-pill);letter-spacing:.4px;flex-shrink:0;margin-top:1px;}
.dump-cat-task{background:#EDF2F8;color:#4A7BA8;}
.dump-cat-worry{background:var(--danger-bg);color:var(--danger);}
.dump-cat-idea{background:#F2EFF8;color:#7B6DAA;}
.dump-cat-feeling{background:var(--accent-bg);color:var(--accent);}
.dump-cat-other{background:var(--surface-2);color:var(--text-3);}
.dump-item-text{flex:1;font-size:13px;color:var(--text-2);line-height:1.5;}
.dump-filter-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}

/* ═══════════════════════════
   PAGE: PRIORITY MATRIX
/* ═══════════════════════════ */
.matrix-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:12px;height:440px;margin-bottom:14px;}
.matrix-quad{border-radius:var(--r-lg);padding:14px;display:flex;flex-direction:column;overflow:hidden;}
.mq-do{background:linear-gradient(135deg,#FDF0EE,#FEF5F3);border:1px solid rgba(139,40,32,.12);}
.mq-schedule{background:linear-gradient(135deg,var(--accent-bg),var(--surface));border:1px solid var(--accent-br);}
.mq-delegate{background:linear-gradient(135deg,#EDF2F8,#F0F4FA);border:1px solid rgba(74,123,168,.15);}
.mq-eliminate{background:linear-gradient(135deg,var(--surface-2),var(--surface-3));border:1px solid var(--border-2);}
.mq-header{font-size:11px;font-weight:600;letter-spacing:.7px;text-transform:uppercase;margin-bottom:1px;}
.mq-subtitle{font-size:11px;color:var(--text-3);margin-bottom:10px;}
.mq-do .mq-header{color:var(--danger);}
.mq-schedule .mq-header{color:var(--accent);}
.mq-delegate .mq-header{color:#4A7BA8;}
.mq-eliminate .mq-header{color:var(--text-3);}
.mq-items{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px;}
.mq-item{display:flex;align-items:center;gap:7px;padding:6px 9px;background:rgba(255,255,255,.65);border-radius:var(--r-sm);font-size:12.5px;color:var(--text);}
.mq-item-text{flex:1;}
.mq-item-del{background:none;border:none;cursor:pointer;color:var(--text-3);font-size:12px;opacity:.4;padding:0;flex-shrink:0;}
.mq-item-del:hover{opacity:1;color:var(--danger);}
.matrix-add-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.matrix-quad-select{padding:9px 12px;border:1px solid var(--border-2);border-radius:var(--r);background:var(--surface);font-family:'DM Sans',sans-serif;font-size:13px;color:var(--text);cursor:pointer;outline:none;}

/* ═══════════════════════════
   PAGE: DISTRACTION LOG
/* ═══════════════════════════ */
.dist-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.dist-cat-grid{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
.dist-cat-btn{padding:6px 12px;border-radius:var(--r-pill);border:1.5px solid var(--border-2);background:var(--surface);font-family:'DM Sans',sans-serif;font-size:12px;font-weight:500;color:var(--text-2);cursor:pointer;transition:all .15s;}
.dist-cat-btn:hover{border-color:var(--border-2);background:var(--surface-2);}
.dist-cat-btn.active{background:var(--accent-bg);border-color:var(--accent-br);color:var(--accent);}
.dist-item{display:flex;align-items:flex-start;gap:11px;padding:11px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);margin-bottom:7px;}
.dist-item-icon{font-size:20px;flex-shrink:0;}
.dist-item-what{font-size:13.5px;font-weight:500;color:var(--text);margin-bottom:2px;}
.dist-item-meta{font-size:11.5px;color:var(--text-3);}
.dist-sev-pill{font-size:10px;font-weight:600;padding:2px 8px;border-radius:var(--r-pill);}
.dist-sev-low{background:var(--green-bg);color:var(--green);}
.dist-sev-med{background:#FBF6E8;color:#6B4A00;}
.dist-sev-high{background:var(--danger-bg);color:var(--danger);}
.dist-sev-row{display:flex;gap:7px;margin-bottom:12px;}
.dist-sev-btn{flex:1;padding:9px 6px;border-radius:var(--r);border:1.5px solid var(--border-2);background:transparent;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:12px;text-align:center;transition:all .15s;}
.dist-sev-btn.sel-low{background:var(--green-bg);border-color:rgba(78,140,106,.4);color:var(--green);font-weight:500;}
.dist-sev-btn.sel-med{background:#FBF6E8;border-color:rgba(107,74,0,.25);color:#6B4A00;font-weight:500;}
.dist-sev-btn.sel-high{background:var(--danger-bg);border-color:rgba(139,40,32,.25);color:var(--danger);font-weight:500;}
.dist-pattern-box{background:#EDF2F8;border:1px solid rgba(74,123,168,.15);border-radius:var(--r);padding:13px;margin-top:14px;}
.dist-pattern-title{font-size:11px;font-weight:600;color:#4A7BA8;text-transform:uppercase;letter-spacing:.6px;margin-bottom:5px;}

/* ═══════════════════════════
   PAGE: BODY DOUBLING
/* ═══════════════════════════ */
.bd-center{display:flex;flex-direction:column;align-items:center;gap:22px;padding:16px 0 32px;}
.bd-companion-wrap{position:relative;width:160px;height:160px;display:flex;align-items:center;justify-content:center;}
.bd-orb{width:120px;height:120px;border-radius:50%;background:radial-gradient(circle at 38% 35%,#EDE8FF,#C8C0E8 60%,#A8A0D8);box-shadow:0 0 32px rgba(123,109,170,.22),inset 0 0 20px rgba(255,255,255,.4);animation:bdFloat 4s ease-in-out infinite;position:relative;z-index:2;}
@keyframes bdFloat{0%,100%{transform:scale(1) translateY(0);}50%{transform:scale(1.05) translateY(-5px);}}
.bd-ring{position:absolute;border-radius:50%;border:1.5px solid rgba(123,109,170,.18);animation:bdFloat 4s ease-in-out infinite;}
.bd-ring-1{width:138px;height:138px;animation-delay:.3s;}
.bd-ring-2{width:160px;height:160px;animation-delay:.7s;border-color:rgba(123,109,170,.1);}
.bd-timer{font-family:'Fraunces',serif;font-size:64px;font-weight:600;letter-spacing:-3px;color:var(--text);line-height:1;}
.bd-status{font-family:'Fraunces',serif;font-size:17px;color:var(--text);text-align:center;min-height:26px;}
.bd-message{background:#F2EFF8;border:1px solid rgba(123,109,170,.2);border-radius:var(--r-lg);padding:16px 20px;text-align:center;font-family:'Fraunces',serif;font-style:italic;font-size:15px;color:var(--text);line-height:1.6;min-height:58px;transition:opacity .5s;max-width:400px;width:100%;}
.bd-task-display{font-size:14px;color:var(--text-2);text-align:center;max-width:380px;line-height:1.6;display:none;}
.bd-dur-row{display:flex;gap:8px;}

/* ═══════════════════════════
   PAGE: GUIDED PROMPTS
/* ═══════════════════════════ */
.prompt-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:32px 36px;box-shadow:var(--shadow);margin-bottom:18px;min-height:180px;display:flex;flex-direction:column;justify-content:space-between;}
.prompt-cat-badge{font-size:10px;font-weight:600;letter-spacing:1px;text-transform:uppercase;padding:4px 11px;border-radius:var(--r-pill);display:inline-block;margin-bottom:14px;}
.prompt-text{font-family:'Fraunces',serif;font-size:22px;font-weight:600;color:var(--text);line-height:1.4;margin-bottom:12px;}
.prompt-response-area{width:100%;min-height:160px;padding:16px 18px;border:1px solid var(--border-2);border-radius:var(--r-lg);background:var(--surface);font-family:'DM Sans',sans-serif;font-size:14px;color:var(--text);outline:none;line-height:1.8;resize:none;transition:border-color .15s;}
.prompt-response-area:focus{border-color:var(--accent);}
.prompt-response-area::placeholder{color:var(--text-3);}
.prompt-saved-item{padding:14px 16px;background:var(--surface-2);border-radius:var(--r);margin-bottom:8px;border-left:3px solid var(--accent);}
.prompt-saved-q{font-size:11px;color:var(--text-3);font-style:italic;margin-bottom:5px;line-height:1.4;}
.prompt-saved-resp{font-size:13px;color:var(--text-2);line-height:1.6;}
.prompt-saved-date{font-size:10px;color:var(--text-3);margin-top:4px;}
.prompt-cat-filter{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px;}

/* ═══════════════════════════
   PAGE: TRIGGER TRACKER
/* ═══════════════════════════ */
.trig-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.trig-sev-row{display:flex;gap:7px;margin-bottom:12px;}
.trig-sev-btn{flex:1;padding:9px 6px;border-radius:var(--r);border:1.5px solid var(--border-2);background:transparent;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:12px;text-align:center;transition:all .15s;}
.trig-sev-btn.sel-mild{background:var(--green-bg);border-color:rgba(78,140,106,.4);color:var(--green);font-weight:500;}
.trig-sev-btn.sel-mod{background:#FBF6E8;border-color:rgba(107,74,0,.25);color:#6B4A00;font-weight:500;}
.trig-sev-btn.sel-intense{background:var(--danger-bg);border-color:rgba(139,40,32,.25);color:var(--danger);font-weight:500;}
.trig-item{padding:13px 15px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);margin-bottom:8px;transition:border-color .15s;}
.trig-item:hover{border-color:var(--border-2);}
.trig-item-top{display:flex;align-items:flex-start;gap:10px;margin-bottom:5px;}
.trig-item-trigger{font-size:13.5px;font-weight:500;color:var(--text);flex:1;line-height:1.4;}
.trig-sev-badge{font-size:10px;font-weight:600;padding:2px 9px;border-radius:var(--r-pill);flex-shrink:0;margin-top:2px;}
.tsev-mild{background:var(--green-bg);color:var(--green);}
.tsev-mod{background:#FEF9F0;color:#6B4A00;}
.tsev-intense{background:var(--danger-bg);color:var(--danger);}
.trig-item-detail{font-size:12.5px;color:var(--text-3);line-height:1.5;}
.trig-pattern-box{background:#EDF2F8;border:1px solid rgba(74,123,168,.15);border-radius:var(--r);padding:13px;margin-top:14px;}
.trig-pattern-title{font-size:11px;font-weight:600;color:#4A7BA8;text-transform:uppercase;letter-spacing:.6px;margin-bottom:5px;}

/* ═══════════════════════════
   PAGE: ADDICTION WIKI
/* ═══════════════════════════ */
.wiki-hero {
  background: linear-gradient(135deg, var(--surface-2) 0%, var(--surface) 60%);
  border: 1px solid var(--border-2);
  border-radius: var(--r-xl);
  padding: 36px 40px;
  margin-bottom: 28px;
  position: relative;
  overflow: hidden;
}
.wiki-hero::before {
  content: '';
  position: absolute;
  top: -40px; right: -40px;
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(26,46,26,0.06), transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.wiki-disclaimer {
  background: var(--blue-bg);
  border: 1px solid rgba(74,123,168,.2);
  border-radius: var(--r);
  padding: 13px 16px;
  font-size: 12.5px;
  color: var(--blue);
  line-height: 1.6;
  margin-bottom: 28px;
  display: flex;
  gap: 10px;
  align-items: flex-start;
}
.wiki-toc {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 20px 22px;
  margin-bottom: 28px;
  box-shadow: var(--sh-sm, var(--shadow-sm));
}
.wiki-toc-title {
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .9px;
  text-transform: uppercase;
  color: var(--text-3);
  margin-bottom: 12px;
}
.wiki-toc-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 16px;
}
.wiki-toc-item {
  font-size: 13px;
  color: var(--accent);
  cursor: pointer;
  padding: 3px 0;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: color .15s;
}
.wiki-toc-item:hover { color: var(--accent-dk); }
.wiki-toc-num {
  font-size: 10px;
  font-weight: 600;
  color: var(--text-3);
  min-width: 18px;
}

/* Accordion sections */
.wiki-section {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  margin-bottom: 10px;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.wiki-section-header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 22px;
  cursor: pointer;
  user-select: none;
  transition: background .15s;
}
.wiki-section-header:hover { background: var(--surface-2); }
.wiki-section.open .wiki-section-header { background: var(--surface-2); }
.wiki-section-num {
  font-family: 'Fraunces', serif;
  font-size: 22px;
  font-weight: 600;
  color: var(--accent-br);
  min-width: 36px;
  line-height: 1;
}
.wiki-section-title {
  font-family: 'Fraunces', serif;
  font-size: 17px;
  font-weight: 600;
  color: var(--text);
  flex: 1;
  line-height: 1.3;
}
.wiki-section-subtitle {
  font-size: 12px;
  color: var(--text-3);
  margin-top: 2px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
}
.wiki-section-chevron {
  width: 18px; height: 18px;
  stroke: var(--text-3);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  transition: transform .25s ease;
  flex-shrink: 0;
}
.wiki-section.open .wiki-section-chevron { transform: rotate(180deg); }
.wiki-section-body {
  display: none;
  padding: 0 22px 22px;
  border-top: 1px solid var(--border);
}
.wiki-section.open .wiki-section-body { display: block; }

/* Wiki prose */
.wiki-lead {
  font-size: 14.5px;
  color: var(--text-2);
  line-height: 1.8;
  font-weight: 300;
  margin: 16px 0 20px;
}
.wiki-h3 {
  font-family: 'Fraunces', serif;
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  margin: 22px 0 8px;
}
.wiki-h3:first-child { margin-top: 16px; }
.wiki-p {
  font-size: 13.5px;
  color: var(--text-2);
  line-height: 1.8;
  font-weight: 300;
  margin-bottom: 12px;
}
.wiki-p strong { color: var(--text); font-weight: 500; }
.wiki-p em { font-style: italic; color: var(--text-2); }

/* Callout boxes */
.wiki-callout {
  border-radius: var(--r);
  padding: 14px 16px;
  margin: 16px 0;
  font-size: 13.5px;
  line-height: 1.75;
}
.wiki-callout-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 5px;
}
.wiki-callout.key {
  background: var(--accent-bg);
  border: 1px solid var(--accent-br);
  color: var(--text);
}
.wiki-callout.key .wiki-callout-label { color: var(--accent); }
.wiki-callout.science {
  background: var(--blue-bg);
  border: 1px solid rgba(74,123,168,.2);
  color: var(--text);
}
.wiki-callout.science .wiki-callout-label { color: var(--blue); }
.wiki-callout.practice {
  background: var(--green-bg);
  border: 1px solid var(--grn-br, rgba(78,140,106,.25));
  color: var(--text);
}
.wiki-callout.practice .wiki-callout-label { color: var(--green); }
.wiki-callout.warning {
  background: #FDF1F0;
  border: 1px solid rgba(139,40,32,.15);
  color: var(--text);
}
.wiki-callout.warning .wiki-callout-label { color: var(--danger); }

/* Fact cards row */
.wiki-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 16px 0;
}
.wiki-fact-card {
  background: var(--surface-2);
  border-radius: var(--r);
  padding: 14px;
  border: 1px solid var(--border);
}
.wiki-fact-num {
  font-family: 'Fraunces', serif;
  font-size: 28px;
  font-weight: 600;
  color: var(--accent);
  line-height: 1;
  margin-bottom: 4px;
}
.wiki-fact-label {
  font-size: 12px;
  color: var(--text-2);
  line-height: 1.5;
}

/* Timeline / steps */
.wiki-steps {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 16px 0;
  position: relative;
}
.wiki-steps::before {
  content: '';
  position: absolute;
  left: 17px;
  top: 20px;
  bottom: 20px;
  width: 2px;
  background: var(--border-2);
}
.wiki-step {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 10px 0;
  position: relative;
}
.wiki-step-dot {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--surface);
  border: 2px solid var(--border-2);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 700;
  color: var(--text-3);
  position: relative;
  z-index: 1;
}
.wiki-step.active .wiki-step-dot {
  background: var(--accent-bg);
  border-color: var(--accent-br);
  color: var(--accent);
}
.wiki-step-text { font-size: 13.5px; color: var(--text-2); line-height: 1.65; padding-top: 7px; }
.wiki-step-text strong { color: var(--text); font-weight: 500; }

/* Quote pull */
.wiki-quote {
  border-left: 3px solid var(--accent-br);
  padding: 12px 18px;
  margin: 16px 0;
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-size: 15px;
  color: var(--text-2);
  line-height: 1.65;
  background: var(--surface-2);
  border-radius: 0 var(--r) var(--r) 0;
}

/* Technique cards */
.wiki-techniques {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 14px 0;
}
.wiki-technique {
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 14px 16px;
}
.wiki-technique-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 5px;
}
.wiki-technique-desc {
  font-size: 12.5px;
  color: var(--text-2);
  line-height: 1.6;
}

/* Urge timer (interactive) */
.wiki-urge-timer {
  background: linear-gradient(135deg, var(--accent-bg), var(--surface));
  border: 1px solid var(--accent-br);
  border-radius: var(--r-lg);
  padding: 24px;
  text-align: center;
  margin: 16px 0;
}
.wiki-urge-arc {
  position: relative;
  width: 140px;
  height: 140px;
  margin: 0 auto 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.wiki-urge-svg {
  position: absolute;
  inset: 0;
  transform: rotate(-90deg);
}
.wiki-urge-track { fill: none; stroke: var(--surface-3); stroke-width: 6; }
.wiki-urge-fill  { fill: none; stroke: var(--accent-lt); stroke-width: 6; stroke-linecap: round;
  stroke-dasharray: 345; stroke-dashoffset: 345; transition: stroke-dashoffset .8s linear; }
.wiki-urge-time {
  font-family: 'Fraunces', serif;
  font-size: 36px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: -1px;
  line-height: 1;
}
.wiki-urge-label { font-size: 11px; color: var(--text-3); margin-top: 2px; }
.wiki-urge-message {
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-size: 15px;
  color: var(--text-2);
  min-height: 44px;
  line-height: 1.55;
  margin-bottom: 16px;
  transition: opacity .4s;
}

.em-layout{display:grid;grid-template-columns:340px 1fr;gap:18px;margin-bottom:18px;}
.em-slider-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.em-slider-label{font-size:12px;color:var(--text-2);font-weight:500;min-width:68px;}
.em-slider-val{font-family:'Fraunces',serif;font-size:22px;font-weight:600;color:var(--text);min-width:26px;text-align:right;}
.em-range{flex:1;-webkit-appearance:none;appearance:none;height:4px;border-radius:100px;outline:none;cursor:pointer;background:var(--surface-3);}
.em-range::-webkit-slider-thumb{-webkit-appearance:none;width:17px;height:17px;border-radius:50%;background:var(--text);cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.18);}
.em-entry{display:flex;align-items:center;gap:12px;padding:10px 13px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);margin-bottom:6px;}
.em-entry-date{font-size:11px;color:var(--text-3);min-width:80px;}
.em-entry-bars{display:flex;gap:8px;flex:1;align-items:center;}
.em-bar-wrap{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1;}
.em-bar-track{width:100%;height:22px;background:var(--surface-2);border-radius:100px;overflow:hidden;}
.em-bar-fill{height:100%;border-radius:100px;transition:width .4s;}
.em-bar-lbl{font-size:10px;color:var(--text-3);}
.em-entry-note{font-size:12px;color:var(--text-3);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.em-insight-box{background:var(--green-bg);border:1px solid var(--green-br, rgba(78,140,106,.25));border-radius:var(--r);padding:13px;margin-top:14px;font-size:13px;color:var(--text-2);line-height:1.6;}

/* ═══════════════════════════
   PAGE: AFFIRMATIONS
/* ═══════════════════════════ */
.affirm-hero{border-radius:var(--r-xl);padding:52px 48px;min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden;margin-bottom:22px;background:linear-gradient(135deg,var(--accent-bg),#FFFFFF 40%,var(--green-bg));border:1px solid var(--accent-br);}
.affirm-hero::before{display:none;content:'';}
.affirm-text{font-family:'Fraunces',serif;font-size:24px;font-weight:500;color:var(--text);line-height:1.5;max-width:580px;position:relative;z-index:1;transition:opacity .35s;}
.affirm-cat-label{font-size:10px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--accent);margin-top:12px;position:relative;z-index:1;}
.affirm-cat-filter{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;margin-bottom:22px;}
.affirm-controls{display:flex;gap:10px;justify-content:center;margin-bottom:28px;}
.affirm-saved-item{padding:14px 16px;border-radius:var(--r);border:1px solid var(--border);background:var(--surface);margin-bottom:8px;display:flex;align-items:flex-start;gap:12px;}
.affirm-saved-text{font-family:'Fraunces',serif;font-style:italic;font-size:14px;color:var(--text);line-height:1.6;flex:1;}
.affirm-saved-date{font-size:10.5px;color:var(--text-3);flex-shrink:0;margin-top:3px;}
.affirm-save-btn{padding:4px 10px;border-radius:var(--r-pill);border:1px solid var(--accent-br);background:var(--accent-bg);color:var(--accent);font-size:11px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .15s;position:relative;z-index:1;}
.affirm-save-btn:hover{background:var(--accent);color:#fff;}

/* ═══════════════════════════
   PAGE: VALUES EXPLORER
/* ═══════════════════════════ */
.values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:18px;}
.value-card{padding:14px 10px;border-radius:var(--r);border:1.5px solid var(--border-2);background:transparent;cursor:pointer;transition:all .18s;text-align:center;font-family:'DM Sans',sans-serif;}
.value-card:hover{background:var(--surface-2);}
.value-card.selected{background:var(--accent-bg);border-color:var(--accent-br);}
.value-card-icon{font-size:22px;margin-bottom:5px;}
.value-card-name{font-size:12px;font-weight:500;color:var(--text);}
.value-card.selected .value-card-name{color:var(--accent);}
.values-top-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;}
.values-top-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface-2);border-radius:var(--r);}
.values-top-rank{font-family:'Fraunces',serif;font-size:22px;font-weight:600;color:var(--accent);min-width:28px;}
.values-top-icon{font-size:20px;}
.values-top-name{font-size:14px;font-weight:500;color:var(--text);}
.values-refl-item{padding:12px 14px;background:var(--surface-2);border-radius:var(--r);margin-bottom:7px;border-left:3px solid var(--accent);}
.values-refl-text{font-size:13px;color:var(--text-2);line-height:1.6;}
.values-refl-date{font-size:10px;color:var(--text-3);margin-top:4px;}

/* ═══════════════════════════
   PAGE: THERAPY NOTES
/* ═══════════════════════════ */
.therapy-layout{display:grid;grid-template-columns:1fr 360px;gap:18px;}
.therapy-form-row{margin-bottom:12px;}
.therapy-field-label{font-size:11px;font-weight:600;letter-spacing:.7px;text-transform:uppercase;color:var(--text-3);margin-bottom:6px;}
.mood-tag-row{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px;}
.mood-tag{font-size:12px;padding:5px 11px;border-radius:var(--r-pill);border:1px solid var(--border-2);background:var(--surface-2);color:var(--text-2);cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .15s;}
.mood-tag.active{background:var(--accent-bg);border-color:var(--accent-br);color:var(--accent);}
.therapy-session-item{padding:15px 17px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:10px;cursor:pointer;transition:border-color .2s;}
.therapy-session-item:hover{border-color:var(--border-2);}
.therapy-session-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.therapy-session-date{font-size:12px;color:var(--text-3);}
.therapy-session-tags{display:flex;flex-wrap:wrap;gap:4px;}
.therapy-session-preview{font-size:13px;color:var(--text-2);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.therapy-homework-badge{font-size:11px;color:var(--accent);margin-top:5px;}

/* ═══════════════════════════
   PAGE: COPING TOOLKIT
/* ═══════════════════════════ */
.coping-filter-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px;}
.coping-item{display:flex;align-items:flex-start;gap:13px;padding:15px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:10px;transition:all .15s;}
.coping-item:hover{border-color:var(--border-2);box-shadow:var(--shadow-sm);}
.coping-item-icon{font-size:24px;flex-shrink:0;margin-top:1px;}
.coping-item-body{flex:1;}
.coping-item-header{display:flex;align-items:center;gap:8px;margin-bottom:3px;}
.coping-item-name{font-size:14px;font-weight:500;color:var(--text);}
.coping-item-cat{font-size:10px;font-weight:600;padding:2px 8px;border-radius:var(--r-pill);}
.coping-cat-anxiety{background:var(--danger-bg);color:var(--danger);}
.coping-cat-depression{background:#EDF2F8;color:#4A7BA8;}
.coping-cat-adhd{background:#F2EFF8;color:#7B6DAA;}
.coping-cat-anger{background:#FEF9F0;color:#6B4A00;}
.coping-cat-sleep{background:var(--surface-3);color:var(--text-2);}
.coping-cat-general{background:var(--green-bg);color:var(--green);}
.coping-item-desc{font-size:13px;color:var(--text-2);line-height:1.55;}
.coping-item-uses{font-size:11px;color:var(--text-3);margin-top:3px;}
.coping-item-actions{display:flex;gap:6px;flex-shrink:0;margin-top:2px;}
.coping-use-btn{padding:6px 12px;border-radius:var(--r-pill);border:1px solid var(--border-2);background:transparent;font-family:'DM Sans',sans-serif;font-size:12px;font-weight:500;color:var(--text-2);cursor:pointer;transition:all .15s;}
.coping-use-btn:hover{background:var(--green-bg);border-color:rgba(78,140,106,.35);color:var(--green);}
.coping-add-form{background:var(--surface-2);border-radius:var(--r-lg);padding:18px;}



/* ═══════════════════════════════════════════════
   BLACK & WHITE GLOBAL POLISH
/* ═══════════════════════════════════════════════ */

/* Toast */
.toast{background:#0A0A0A;color:#fff;border:none;box-shadow:0 8px 32px rgba(0,0,0,0.35);}

/* Nav hover */
.nav-item:hover{background:rgba(255,255,255,0.08) !important;color:rgba(255,255,255,0.9) !important;}


/* Chip active → black */
.chip:hover,.chip.active{border-color:rgba(0,0,0,0.3);background:rgba(0,0,0,0.07);color:var(--text);}

/* Mood face buttons */
.mood-face-btn:hover{border-color:rgba(0,0,0,0.25) !important;background:rgba(0,0,0,0.05) !important;}
.mood-face-btn.selected{background:rgba(0,0,0,0.06) !important;border-color:rgba(0,0,0,0.3) !important;}
.mood-face-btn.selected .mood-face-lbl{color:var(--text) !important;}

/* ── Breathing — dark card overrides ── */
.breath-visual-card{
  background:#0A0A0A;
  border:1px solid rgba(255,255,255,0.04);
  border-radius:var(--r-2xl);padding:52px 24px;
  display:flex;flex-direction:column;align-items:center;gap:26px;
  box-shadow:var(--shadow-lg);position:relative;overflow:hidden;
}
.breath-visual-card::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 50%,rgba(255,255,255,0.03),transparent 60%);
  pointer-events:none;
}


.breath-visual-card .btn,.breath-visual-card select{
  background:rgba(255,255,255,0.08) !important;
  border:1.5px solid rgba(255,255,255,0.15) !important;
  color:rgba(255,255,255,0.75) !important;
}
.breath-visual-card .btn:hover,.breath-visual-card select:hover{
  background:rgba(255,255,255,0.18) !important;
  border-color:rgba(255,255,255,0.35) !important;
  color:#fff !important;
}
.breath-visual-card #b-start-btn{
  background:rgba(255,255,255,0.15) !important;
  border-color:rgba(255,255,255,0.4) !important;
  color:#fff !important;font-weight:700 !important;
}
#b-cycle{color:rgba(0,0,0,0.4);position:relative;z-index:10;}

/* ── Focus timer — dark card ── */
.timer-card{
  background:#0A0A0A !important;
  border:1px solid rgba(255,255,255,0.04) !important;
  border-radius:var(--r-2xl) !important;
  position:relative;overflow:hidden;
}
.timer-card::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 30%,rgba(255,255,255,0.03),transparent 55%);
  pointer-events:none;z-index:0;
}
.timer-card > *{position:relative;z-index:1;}
.t-display{color:#0A0A0A !important;font-size:64px !important;font-weight:700 !important;letter-spacing:-3px !important;}
.t-mode-btn{background:rgba(255,255,255,0.07) !important;border:1.5px solid rgba(255,255,255,0.1) !important;color:rgba(255,255,255,0.5) !important;}
.t-mode-btn.active,.t-mode-btn:hover{background:rgba(255,255,255,0.18) !important;border-color:rgba(255,255,255,0.4) !important;color:#fff !important;}
.timer-card .btn{background:rgba(255,255,255,0.08) !important;border:1.5px solid rgba(255,255,255,0.12) !important;color:rgba(255,255,255,0.75) !important;}
.timer-card .btn-primary,.timer-card #t-btn{background:rgba(255,255,255,0.15) !important;border-color:rgba(255,255,255,0.4) !important;color:#fff !important;font-weight:700 !important;}
.t-session{color:rgba(0,0,0,0.45) !important;}
.t-session span{color:rgba(0,0,0,0.7) !important;}
#tGrad stop:first-child{stop-color:#0A0A0A;}
#tGrad stop:last-child{stop-color:#555555;}

/* ── PMR left card ── */
#pmr .card:first-child,
.pmr-layout > .card:first-child{background:#0A0A0A !important;border:1px solid rgba(255,255,255,0.04) !important;}
.pmr-time{color:#0A0A0A;font-family:'Fraunces',serif;font-size:40px;font-weight:700;letter-spacing:-1px;line-height:1;}
.pmr-phase-text,.pmr-phase-sub{color:rgba(0,0,0,0.6) !important;}
.pmr-phase-banner.tense{background:rgba(255,255,255,0.08) !important;border-top-color:rgba(255,255,255,0.15) !important;border-bottom-color:rgba(255,255,255,0.15) !important;}
.pmr-ring-fill{stroke:#0A0A0A;}
.pmr-ring-track{stroke:rgba(255,255,255,0.1) !important;}

/* ── Meditation ── */
.med-center{background:#0A0A0A !important;border-radius:var(--r-2xl) !important;padding:48px 36px !important;position:relative;overflow:hidden;}
.med-center::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 55%,rgba(255,255,255,0.03),transparent 60%);pointer-events:none;}
.med-center > *{position:relative;z-index:1;}
.med-display{color:#ffffff !important;font-family:'Fraunces',serif;font-size:52px;font-weight:700;letter-spacing:-2px;line-height:1;}
.med-prompt{color:rgba(255,255,255,0.5) !important;font-style:italic;}
.med-dur-row .btn,.med-dur-btn{background:rgba(255,255,255,0.07) !important;border:1.5px solid rgba(255,255,255,0.1) !important;color:rgba(255,255,255,0.6) !important;}
.med-dur-row .btn.active,.med-dur-btn.active,.med-dur-row .btn:hover,.med-dur-btn:hover{background:rgba(255,255,255,0.18) !important;border-color:rgba(255,255,255,0.4) !important;color:#fff !important;}
#mToggleBtn,#med-btn{background:rgba(255,255,255,0.15) !important;border:1.5px solid rgba(255,255,255,0.35) !important;color:#fff !important;font-weight:700 !important;}


/* ── Body doubling ── */
.bd-orb{background:radial-gradient(circle at 40% 36%,#000000,#111111 20%,#1E1E1E 35%,#383838 55%,#666666 78%,#999999 100%) !important;}
.bd-ring{border-color:rgba(0,0,0,0.1) !important;}

/* ── Body map ── */
.body-map{background:#0A0A0A !important;border:1px solid rgba(255,255,255,0.04) !important;border-radius:var(--r-2xl) !important;}
.body-area-btn{color:rgba(255,255,255,0.6) !important;border-color:rgba(255,255,255,0.12) !important;background:rgba(255,255,255,0.05) !important;}
.body-area-btn.active,.body-area-btn:hover{background:rgba(255,255,255,0.18) !important;border-color:rgba(255,255,255,0.4) !important;color:#fff !important;}

/* ── SOS ── */
.sos-panel::before{background:radial-gradient(ellipse at 50% 0%,rgba(0,0,0,0.04),transparent 65%);}
.sos-safe-text,.sos-sub{color:var(--text) !important;}
.sos-btn-primary{background:var(--text) !important;}

/* ── Progress bars ── */
.ba-mood-bar-fill{background:var(--text) !important;}
#sc-bar,div[id="sc-bar"]{background:linear-gradient(90deg,#333,#888) !important;}

/* ── Habits ── */
.habit-dot.done{background:var(--text) !important;}
.habit-dot.today{border-color:rgba(0,0,0,0.4) !important;}

/* ── Affirmation page ── */
.affirm-hero{background:linear-gradient(145deg,rgba(0,0,0,0.04),var(--surface) 50%) !important;border-color:rgba(0,0,0,0.08) !important;}
.affirm-hero::before{color:rgba(0,0,0,0.04) !important;}
.affirm-cat-label{color:var(--text-3) !important;opacity:1;}
.affirm-save-btn{border-color:rgba(0,0,0,0.2) !important;background:rgba(0,0,0,0.05) !important;color:var(--text) !important;}
.affirm-save-btn:hover{background:var(--text) !important;color:#fff !important;}

/* ── Values ── */
.value-card.selected{background:rgba(0,0,0,0.06) !important;border-color:rgba(0,0,0,0.25) !important;}
.value-card.selected .value-card-name{color:var(--text) !important;}
.values-top-rank{color:var(--text-3) !important;}
.values-refl-item{border-left-color:var(--text) !important;}

/* ── Therapy ── */
.mood-tag.active{background:rgba(0,0,0,0.07) !important;border-color:rgba(0,0,0,0.25) !important;color:var(--text) !important;}
.therapy-homework-badge{color:var(--text-2) !important;}

/* ── Worry / hints ── */
.act-hint{border-left-color:var(--text-2) !important;}
.act-hint.green{border-left-color:var(--text-3) !important;}

/* ── Prompt ── */
.prompt-saved-item{border-left-color:var(--text) !important;}

/* ── Triggers ── */
.tsev-mild{background:rgba(0,0,0,0.05);color:var(--text-2) !important;}
.tsev-mod{background:rgba(0,0,0,0.07);color:var(--text) !important;}
.tsev-intense{background:rgba(0,0,0,0.1);color:var(--text) !important;}
.trig-sev-btn.sel-mild{background:rgba(0,0,0,0.05);border-color:rgba(0,0,0,0.2);color:var(--text-2) !important;}
.trig-sev-btn.sel-mod{background:rgba(0,0,0,0.07);border-color:rgba(0,0,0,0.25);color:var(--text) !important;}
.trig-sev-btn.sel-intense{background:rgba(0,0,0,0.10);border-color:rgba(0,0,0,0.3);color:var(--text) !important;}

/* ── Dist severity ── */
.dist-sev-low{background:rgba(0,0,0,0.04);color:var(--text-2);}
.dist-sev-med{background:rgba(0,0,0,0.07);color:var(--text);}
.dist-sev-high{background:rgba(0,0,0,0.10);color:var(--text);}
.dist-sev-btn.sel-low{background:rgba(0,0,0,0.04);border-color:rgba(0,0,0,0.15);color:var(--text-2);}
.dist-sev-btn.sel-med{background:rgba(0,0,0,0.07);border-color:rgba(0,0,0,0.2);color:var(--text);}
.dist-sev-btn.sel-high{background:rgba(0,0,0,0.10);border-color:rgba(0,0,0,0.25);color:var(--text);}

/* ── Coping cats ── */
.coping-cat-anxiety,.coping-cat-depression,.coping-cat-adhd,
.coping-cat-anger,.coping-cat-sleep,.coping-cat-general{
  background:rgba(0,0,0,0.06) !important;color:var(--text-2) !important;
}
.coping-use-btn:hover{background:rgba(0,0,0,0.07) !important;border-color:rgba(0,0,0,0.2) !important;color:var(--text) !important;}

/* ── Grounding dots ── */
.ground-step-dot.done{background:var(--text) !important;}
.ground-step-dot.active{background:var(--text-2) !important;}

/* ── Body zone ── */
.body-zone.active{border-color:var(--text) !important;box-shadow:0 0 0 3px rgba(0,0,0,0.12) !important;}

/* ── Wiki ── */
.wiki-section.open .wiki-section-header{border-left:3px solid var(--text);padding-left:19px;background:rgba(0,0,0,0.03);}
.wiki-fact-num{color:var(--text) !important;}
.wiki-urge-fill{stroke:var(--text) !important;}
.wiki-quote{border-left-color:var(--text) !important;}
.wiki-step.active .wiki-step-dot{background:rgba(0,0,0,0.06);border-color:rgba(0,0,0,0.25);color:var(--text);}
.wiki-callout.key{background:rgba(0,0,0,0.04) !important;border-color:rgba(0,0,0,0.1) !important;}
.wiki-callout.key .wiki-callout-label{color:var(--text) !important;}
.wiki-toc-item{color:var(--text-2) !important;}
.wiki-toc-item:hover{color:var(--text) !important;}
.wiki-section-num{color:rgba(0,0,0,0.2) !important;}
.wiki-urge-timer{background:rgba(0,0,0,0.03) !important;border-color:rgba(0,0,0,0.1) !important;}

/* ── Insights chart ── */
.insights-chart-wrap{border-color:rgba(0,0,0,0.06) !important;}

/* ── Matrix quad headers ── */
.mq-header{font-weight:600;color:var(--text-2);}

/* Focus timer sphere */
.timer-ring-wrap{
  position:relative;display:flex;align-items:center;justify-content:center;
}
.timer-sphere{
  position:absolute;width:200px;height:200px;border-radius:50%;
  background:radial-gradient(circle at 38% 33%,#f0f0ee 0%,#d8d8d4 45%,#c0c0bc 80%,#a8a8a4 100%);
  box-shadow:0 4px 32px rgba(0,0,0,0.18),inset 0 2px 8px rgba(255,255,255,0.6);
  overflow:hidden;z-index:0;
}
.timer-sphere::after{
  content:'';position:absolute;inset:0;border-radius:50%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");
  opacity:.5;pointer-events:none;
}
.timer-ring{position:relative;z-index:1;}
