.skip-link{position:fixed;left:16px;top:-80px;z-index:50;background:#f0d4d4;color:#111;padding:10px 14px;border-radius:10px;text-decoration:none;font-weight:900}.skip-link:focus{top:16px}.hero-header{align-items:center}.compact-strip{min-width:min(460px,100%);margin-bottom:0}.onboarding-grid{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(320px,1.4fr);gap:22px;align-items:start}.contract-copy pre{max-height:430px;overflow:auto}.sticky-actions{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(21,21,22,.72),#151516);padding-top:14px;border-top:1px solid var(--line)}.range-value{display:inline-flex;min-width:34px;height:28px;align-items:center;justify-content:center;margin:-6px 0 10px 10px;background:#151516;border:1px solid var(--line);border-radius:999px;color:#fff;font-size:12px;font-weight:900}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;margin-top:14px}.progress-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.progress-form .range-value{grid-column:1/-1;justify-self:start;margin:0}.main:focus{outline:none}.contract-card{min-height:420px}.card .empty + .card-actions{margin-top:14px}.stat-strip.compact-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.field input::placeholder,.field textarea::placeholder{color:#58534e}.list-stack .card{margin-bottom:0}.card-actions form{margin:0}.flash{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start}.flash-close{border:0;background:transparent;color:#f1d4d4;margin:0;padding:0 4px;font-size:18px;line-height:1;box-shadow:none}.flash-close:hover{background:transparent;color:#fff;transform:none;box-shadow:none}button:disabled{opacity:.62;cursor:wait;transform:none!important}.journal-meter{display:flex;align-items:end;justify-content:flex-end}.auto-grow{resize:vertical}.form-grid textarea{min-height:118px}.form-grid textarea[name="content"]{min-height:220px}.empty a{color:#f1d4d4}.confirm-zone{border-color:#5c2a2a}.choice-row.full{padding:8px 0}.card-actions .button-link{margin:4px 6px 4px 0}@media (max-width:980px){.onboarding-grid{grid-template-columns:1fr}.compact-strip{margin-top:18px}.progress-form{grid-template-columns:1fr}.journal-meter{justify-content:flex-start}}@media (max-width:640px){.table-wrap table,.table-wrap thead,.table-wrap tbody,.table-wrap tr,.table-wrap th,.table-wrap td{display:block;width:100%}.table-wrap tr{border-bottom:1px solid var(--line);padding:10px}.table-wrap th{display:none}.table-wrap td{border:0;padding:7px 0}.stat-strip.compact-strip{grid-template-columns:1fr}.sticky-actions{position:static}.contract-copy pre{max-height:none}.flash{grid-template-columns:1fr}.flash-close{justify-self:end}.range-value{margin-left:0}.metric-grid{grid-template-columns:1fr}}
.nav-section{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);padding:14px 18px 4px;margin-top:6px;border-top:1px solid var(--line);pointer-events:none;user-select:none}@media (max-width:820px){.nav-section{grid-column:1/-1;padding:10px 0 2px;margin-top:2px}}

/* ── Login page ───────────────────────────────────────── */

@keyframes login-enter{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:translateY(0)}
}

.login-body{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:100vh;
  background:
    radial-gradient(ellipse 80% 60% at 50% 30%,rgba(120,0,0,.28),transparent 70%),
    radial-gradient(circle at 70% -10%,rgba(139,0,0,.14),transparent 36rem),
    linear-gradient(180deg,#080808 0%,#050505 100%);
}

.login-body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background-image:
    repeating-linear-gradient(
      0deg,
      transparent,
      transparent 2px,
      rgba(0,0,0,.12) 2px,
      rgba(0,0,0,.12) 4px
    );
  z-index:1;
  mix-blend-mode:multiply;
  opacity:.45;
}

.login-body .login-card{
  position:relative;
  z-index:2;
  max-width:380px;
  width:100%;
  padding:40px 36px 36px;
  animation:login-enter .7s cubic-bezier(.16,1,.3,1) both;
  border:1px solid rgba(157,0,0,.18);
  box-shadow:
    0 24px 64px rgba(0,0,0,.55),
    0 0 80px rgba(120,0,0,.08);
}

.login-body .brand{
  text-shadow:
    0 0 28px rgba(180,0,0,.52),
    0 0 60px rgba(140,0,0,.2);
}

.login-tagline{
  margin:8px 0 0;
  font-size:12px;
  font-style:italic;
  color:var(--faint);
  text-align:center;
  letter-spacing:.14em;
}

.login-body input[type="password"]:focus{
  border-color:var(--red);
  box-shadow:
    0 0 0 3px rgba(157,0,0,.22),
    0 0 18px rgba(157,0,0,.12);
  outline:none;
}

/* ── Card hierarchy & accents ─────────────────────────── */

.card{
  transition:border-color .2s,transform .2s,box-shadow .2s;
}
.card:hover{
  transform:translateY(-1px);
  box-shadow:0 20px 52px rgba(0,0,0,.28),0 0 0 1px rgba(255,255,255,.04);
}

/* Gambit — gold corner wash */
.gambit-card{
  position:relative;
  overflow:hidden;
}
.gambit-card::after{
  content:"";
  position:absolute;
  top:-24px;
  left:-24px;
  width:96px;
  height:96px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(184,134,11,.18) 0%,transparent 70%);
  pointer-events:none;
}

/* Rival — shifting dashed border */
@keyframes rival-pulse{
  0%,100%{border-color:rgba(146,141,135,.32)}
  50%{border-color:rgba(146,141,135,.12)}
}
.rival-card{
  border-color:rgba(146,141,135,.32);
  animation:rival-pulse 3.5s ease-in-out infinite;
}

/* Dare — red corner glow */
.dare-card{
  position:relative;
  overflow:hidden;
}
.dare-card::after{
  content:"";
  position:absolute;
  top:-20px;
  left:-20px;
  width:88px;
  height:88px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(157,0,0,.22) 0%,transparent 68%);
  pointer-events:none;
}

/* Score badge — high-score glow */
@keyframes score-glow{
  0%,100%{box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 0 34px rgba(139,0,0,.38)}
  50%{box-shadow:inset 0 0 0 1px rgba(255,255,255,.16),0 0 48px rgba(180,0,0,.52),0 0 14px rgba(157,0,0,.28)}
}
.score-high{
  animation:score-glow 3s ease-in-out infinite;
}

/* Empty states */
.empty{
  text-align:center;
  font-style:italic;
  font-size:15px;
  padding:32px 24px;
  line-height:1.65;
}
.empty::before{
  content:"\2014\2014\2014";
  display:block;
  font-size:22px;
  font-style:normal;
  color:var(--faint);
  letter-spacing:.5em;
  margin-bottom:10px;
  opacity:.48;
}

/* Stat tile hover */
.stat-tile{
  transition:border-color .2s;
}
.stat-tile:hover{
  border-color:#414146;
}

/* Primary button — stronger red fill */
button:not(.ghost-button):not(.danger-button):not(.flash-close){
  background:linear-gradient(180deg,rgba(157,0,0,.32),rgba(120,0,0,.14));
  border-color:var(--red);
}
button:not(.ghost-button):not(.danger-button):not(.flash-close):hover{
  background:linear-gradient(180deg,#a80000,#8b0000);
}

/* ── Psychoanalysis card ───────────────────────────────── */
.eyebrow{display:block;color:var(--gold);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin-bottom:4px}
.psychoanalysis-card{border:1px solid rgba(190,150,90,.35);background:linear-gradient(180deg,rgba(67,47,25,.34),rgba(24,18,12,.84));box-shadow:0 18px 50px rgba(0,0,0,.35)}
.psychoanalysis-header{display:flex;justify-content:space-between;align-items:start;gap:16px;flex-wrap:wrap}
.psychoanalysis-paper{margin-top:14px;padding:20px;border-radius:14px;background:linear-gradient(180deg,#e8dcc3,#d6c59f);color:#21180f;border:1px solid rgba(70,45,18,.25);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}
.psychoanalysis-text{white-space:pre-wrap;font-family:Georgia,serif;font-size:16px;line-height:1.75}
.psychoanalysis-followups{margin-top:18px;border-top:1px solid rgba(70,45,18,.24);padding-top:14px}
.psychoanalysis-followups h3{color:#21180f;margin-top:0}
.psychoanalysis-followup{padding:10px 0;border-bottom:1px solid rgba(70,45,18,.16)}
.psychoanalysis-form{margin-top:16px}
.psychoanalysis-paper .muted{color:#5d4a2d}
.tracker-intel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0}
.insight-card{border-left:4px solid rgba(190,150,90,.72)}
.insight-list{display:grid;gap:12px}
.insight-item,.autopsy-item{padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025)}
.insight-item h3,.autopsy-item h3{margin:0 0 6px}
.resistance-list{display:grid;gap:10px}
.resistance-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025)}
@media (max-width:900px){.tracker-intel-grid{grid-template-columns:1fr}}


/* ── Daily plan ───────────────────────────────────────── */
.daily-plan-list{display:grid;gap:12px;margin:16px 0}
.daily-plan-task{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025)}
.daily-plan-task h3{margin:0 0 4px}
.daily-plan-task p{margin:0}
.daily-plan-slots{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.daily-plan-slots form{margin:0}
.daily-check{min-width:84px}
.daily-check--done{background:linear-gradient(180deg,rgba(32,130,70,.42),rgba(18,92,48,.24))!important;border-color:rgba(84,210,130,.75)!important}
.daily-plan-add{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.daily-plan-map{display:grid;grid-template-columns:repeat(7,minmax(86px,1fr));gap:8px;margin-top:10px}
.plan-day{min-height:76px;padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025);display:flex;flex-direction:column;gap:3px}
.plan-day span,.plan-day small{color:var(--muted);font-size:11px}
.plan-day strong{font-size:13px}
.plan-day--achieved{background:linear-gradient(180deg,rgba(32,130,70,.36),rgba(18,92,48,.16));border-color:rgba(84,210,130,.62)}
.plan-day--partial{background:linear-gradient(180deg,rgba(190,150,90,.28),rgba(80,55,24,.16));border-color:rgba(190,150,90,.58)}
.plan-day--missed{background:linear-gradient(180deg,rgba(157,0,0,.26),rgba(50,0,0,.18));border-color:rgba(157,0,0,.52)}
.map-legend{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:10px;color:var(--muted);font-size:12px}
.legend-box{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:5px;vertical-align:-2px}
@media (max-width:900px){.daily-plan-task{align-items:flex-start;flex-direction:column}.daily-plan-map{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ── Hypnosis page ────────────────────────────────────── */
.hypnosis-card{border-left:4px solid var(--gold)}
.hypnosis-header{display:flex;justify-content:space-between;align-items:start;gap:14px;flex-wrap:wrap}
.hypnosis-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.hypnosis-inline-form{margin:0}
.hypnosis-player{margin:14px 0}
.hypnosis-player audio{width:100%;border-radius:10px}
.hypnosis-script-preview{margin-top:12px}
.hypnosis-script-preview summary{cursor:pointer;color:var(--muted);font-size:13px;padding:8px 0}
.hypnosis-script-preview summary:hover{color:var(--text)}
.hypnosis-script-text{max-height:400px;overflow:auto;font-size:13px;line-height:1.7;white-space:pre-wrap}
