:root{
  --bg:#f5f3ee;
  --paper:#fffefb;
  --ink:#1d2421;
  --muted:#68706b;
  --line:#dadbd5;
  --accent:#325847;
  --accent-soft:#e3ece7;
  --warm:#eee7dc;
  --shadow:0 12px 35px rgba(32,42,37,.07);
  font-family:Aptos,"Aptos Display","Segoe UI",Arial,sans-serif
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);line-height:1.55}
button,textarea,input{font:inherit}
button{cursor:pointer}
.topbar{height:74px;padding:0 max(22px,4vw);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(245,243,238,.92);position:sticky;top:0;z-index:20;backdrop-filter:blur(10px)}
.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}
.brand-mark{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:white;font-family:Georgia,serif;font-size:21px}
.brand strong{display:block;font-size:14px;letter-spacing:.01em}.brand small{display:block;color:var(--muted);font-size:12px}
.shell{width:min(1420px,94vw);margin:42px auto 70px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}
.welcome{max-width:820px;margin:6vh auto;padding:clamp(28px,5vw,58px)}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--accent);margin:0 0 12px}
h1,h2{font-family:Aptos,"Aptos Display","Segoe UI",Arial,sans-serif;font-weight:650;line-height:1.18}
h1{font-size:clamp(30px,4vw,46px);margin:0 0 18px;letter-spacing:-.015em}
h2{font-size:24px;margin:0}
.lede{font-size:17px;color:#4f5853;max-width:680px;margin:0 0 30px}
.field-label{display:block;font-weight:750;margin-bottom:9px}
textarea,input{width:100%;border:1px solid #cfd3ce;background:white;border-radius:12px;padding:13px 14px;color:var(--ink);outline:none;resize:vertical}
textarea:focus,input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(50,88,71,.12)}
.actions,.coach-actions,.final-actions{display:flex;gap:10px;align-items:center;margin-top:16px}
.primary-btn,.secondary-btn,.ghost-btn{border-radius:999px;padding:10px 17px;font-weight:750;border:1px solid transparent}
.primary-btn{background:var(--accent);color:white}.primary-btn:hover{filter:brightness(.94)}
.secondary-btn{background:var(--accent-soft);color:var(--accent);border-color:#c9d9d0}
.ghost-btn{background:transparent;color:var(--ink);border-color:var(--line)}
button:disabled{opacity:.55;cursor:wait}
.principle{margin-top:34px;padding:18px;border-radius:13px;background:var(--warm);color:#4e514d}
.workspace{display:grid;grid-template-columns:220px minmax(0,1fr) 360px;gap:18px;background:transparent;border:0;box-shadow:none}
.progress-panel,.coach-panel,.summary-panel{padding:24px;height:max-content}
.progress-panel,.summary-panel{position:sticky;top:94px}
.stage-nav{display:flex;flex-direction:column;gap:6px}
.stage-chip{width:100%;text-align:left;border:0;border-radius:10px;background:transparent;padding:10px 11px;color:var(--muted);font-weight:650}
.stage-chip.active{background:var(--accent-soft);color:var(--accent)}
.stage-chip.done::after{content:"✓";float:right}
.progress-note{border-top:1px solid var(--line);margin-top:22px;padding-top:18px;color:var(--muted);font-size:12px}
.stage-head,.summary-head,.final-head{display:flex;justify-content:space-between;gap:22px;align-items:flex-start}
.counter{font-size:12px;color:var(--muted);background:#f0f0ec;border-radius:999px;padding:6px 10px;white-space:nowrap}
.stage-intro{font-size:17px;color:#525a55;margin:17px 0 24px}
.stage-fields{display:flex;flex-direction:column;gap:18px}
.field-group label{display:block;font-weight:760;margin-bottom:6px}
.field-group small{display:block;color:var(--muted);margin:0 0 8px}
.field-group textarea{min-height:108px}
.coach-actions{justify-content:flex-end;border-top:1px solid var(--line);padding-top:20px;margin-top:26px}
.coach-box{margin-top:20px;border-left:3px solid var(--accent);background:#f4f8f5;padding:16px 18px;border-radius:0 12px 12px 0}
.coach-label{font-size:10px;letter-spacing:.15em;font-weight:850;color:var(--accent);margin-bottom:7px}
.coach-text{white-space:pre-wrap}
.live-summary{display:flex;flex-direction:column;gap:15px;margin-top:20px}
.summary-block{border-top:1px solid var(--line);padding-top:12px}
.summary-block:first-child{border-top:0;padding-top:0}
.summary-block h3{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--accent);margin:0 0 5px}
.summary-block p,.summary-block ul{font-size:13px;color:#4f5753;margin:0}.summary-block ul{padding-left:18px}
.empty{color:#929791;font-style:italic;font-size:13px}
.final-view{max-width:1050px;margin:0 auto;padding:clamp(28px,4vw,50px)}
.final-head{border-bottom:1px solid var(--line);padding-bottom:26px;margin-bottom:24px}
.final-head h1{font-size:32px;margin-bottom:10px}.final-head p{color:var(--muted);margin:0}
.final-actions{margin:0;flex-wrap:wrap;justify-content:flex-end}
.final-map{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.final-section{border:1px solid var(--line);border-radius:14px;padding:18px;background:white}
.final-section h3{font-family:Aptos,"Aptos Display","Segoe UI",Arial,sans-serif;font-size:19px;font-weight:700;margin:0 0 10px;color:var(--accent)}
.final-section p,.final-section li{margin-top:0;color:#3f4742}
.final-section ul{padding-left:20px;margin-bottom:0}
.final-section.full{grid-column:1/-1}
.hidden{display:none!important}
footer{text-align:center;color:var(--muted);font-size:12px;padding:0 0 28px}
@media(max-width:1050px){
  .workspace{grid-template-columns:180px minmax(0,1fr)}
  .summary-panel{grid-column:2;position:static}
}
@media(max-width:760px){
  .topbar{height:68px}.brand small{display:none}
  .shell{width:min(94vw,720px);margin-top:22px}
  .workspace{display:block}.progress-panel,.coach-panel,.summary-panel{position:static;margin-bottom:14px}
  .stage-nav{display:grid;grid-template-columns:repeat(3,1fr)}
  .stage-chip{font-size:11px;text-align:center;padding:8px 5px}
  .progress-note{display:none}
  .coach-actions{flex-direction:column-reverse}.coach-actions button{width:100%}
  .final-head{display:block}.final-actions{justify-content:flex-start;margin-top:18px}
  .final-map{grid-template-columns:1fr}.final-section.full{grid-column:auto}
}


.coach-text{white-space:normal}
.coach-text > :first-child{margin-top:0}
.coach-text > :last-child{margin-bottom:0}
.coach-text p{margin:0 0 10px}
.coach-text h1,
.coach-text h2,
.coach-text h3,
.coach-text h4{
  font-family:Aptos,"Aptos Display","Segoe UI",Arial,sans-serif;
  font-weight:700;
  line-height:1.25;
  margin:16px 0 8px;
  color:var(--ink)
}
.coach-text h1{font-size:20px}
.coach-text h2{font-size:18px}
.coach-text h3{font-size:16px}
.coach-text h4{font-size:15px}
.coach-text ul,
.coach-text ol{margin:8px 0 12px 22px;padding:0}
.coach-text li{margin:4px 0}
.coach-text blockquote{
  margin:12px 0;
  padding:8px 12px;
  border-left:3px solid #b9cbbf;
  background:#edf4ef;
  border-radius:0 8px 8px 0;
  color:#445049
}
.coach-text strong{font-weight:750}
.coach-text em{font-style:italic}
.coach-text code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:.92em;
  background:#edf0ec;
  padding:1px 5px;
  border-radius:5px
}
.coach-text pre{
  overflow:auto;
  background:#edf0ec;
  padding:12px;
  border-radius:9px;
  margin:10px 0
}
.coach-text pre code{background:transparent;padding:0}
.coach-text hr{border:0;border-top:1px solid var(--line);margin:16px 0}
.coach-text table{
  width:100%;
  border-collapse:collapse;
  margin:12px 0;
  font-size:14px;
  background:white
}
.coach-text th,
.coach-text td{
  border:1px solid var(--line);
  padding:8px 10px;
  text-align:left;
  vertical-align:top
}
.coach-text th{background:#eef3ef;font-weight:750}
.coach-text a{color:var(--accent);text-underline-offset:2px}


.privacy-reminder{
  margin-top:10px;
  padding:11px 13px;
  border:1px solid #ded9cc;
  border-radius:10px;
  background:#faf7f0;
  color:#5b5a54;
  font-size:13px;
  line-height:1.45
}
.privacy-reminder strong{color:var(--ink)}

.pointer-card{
  margin:18px 0 24px;
  border:1px solid #cfd9d2;
  border-radius:14px;
  overflow:hidden;
  background:#fbfdfb
}
.pointer-source,
.pointer-question{padding:14px 16px}
.pointer-source{
  background:#f2f6f3;
  border-bottom:1px solid #dbe3dd
}
.pointer-label{
  display:block;
  font-size:10px;
  font-weight:850;
  letter-spacing:.14em;
  color:var(--accent);
  margin-bottom:6px
}
.pointer-source p,
.pointer-question p{margin:0}
.pointer-source p{
  color:#5d665f;
  font-size:14px
}
.pointer-question p{
  font-size:16px;
  font-weight:650;
  line-height:1.45;
  color:var(--ink)
}
.pointer-question small{
  display:block;
  margin-top:8px;
  color:var(--muted);
  font-size:12px
}
.pointer-loading{
  color:var(--muted);
  font-style:italic;
  font-weight:500!important
}
