:root{
  --cream:#ffffff;
  --card:#ffffff;
  --surface-soft:#f6f5f3;
  --border:#e3ddd0;
  --ink:#241f1a;
  --muted:#6b6255;
  --faint:#9a9184;
  --coral:#2f6fed;
  --coral-strong:#1d4fc4;
  --coral-bg:#e2eaff;
  --coral-text:#1d4fc4;
  --teal:#0ea5b7;
  --teal-bg:#d8f3f6;
  --teal-text:#0a7986;
  --note-bg:#e9eeff;
  --note-border:#c3d2ff;
  --red:#c1594a;
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.6;
}
.wrap{max-width:880px;margin:0 auto;padding:24px 24px 72px;}
.wrap.narrow{max-width:440px;}
header.top{text-align:center;margin-bottom:20px;}
header.top .brand{letter-spacing:3px;font-size:12px;color:var(--coral);font-weight:700;text-transform:uppercase;}
header.top h1{font-size:25px;margin:6px 0 4px;font-weight:700;}
header.top p.tag{color:var(--muted);margin:0;font-size:14px;}

.topbar{display:flex;justify-content:space-between;align-items:center;max-width:880px;margin:0 auto;padding:16px 24px 0;font-size:12.5px;color:var(--muted);}
.topbar a{color:var(--coral);text-decoration:none;font-weight:700;}

.tabs{display:flex;gap:4px;max-width:880px;margin:20px auto 0;padding:0 24px;border-bottom:1px solid var(--border);}
.tabs a{
  padding:10px 18px;font-size:13px;font-weight:700;color:var(--muted);text-decoration:none;
  border-bottom:3px solid transparent;margin-bottom:-1px;
}
.tabs a.active{color:var(--coral-strong);border-bottom-color:var(--coral);}

.card{
  background:var(--card);border:1px solid var(--border);border-radius:14px;
  padding:22px 24px;margin-bottom:18px;box-shadow:0 2px 8px rgba(36,31,26,0.06);
}
.snapshot{display:flex;gap:20px;align-items:center;flex-wrap:wrap;}
.avatar{
  width:96px;height:96px;border-radius:50%;
  background:linear-gradient(135deg,var(--coral),var(--teal));
  display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;
}
.avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.snapshot h2{margin:0 0 4px;font-size:20px;}
.snapshot .meta{color:var(--muted);font-size:13px;margin:0 0 6px;}
.badge{
  display:inline-block;font-size:11px;padding:3px 10px;border-radius:999px;
  background:var(--coral-bg);color:var(--coral-text);font-weight:700;margin-right:6px;
}
h3.section-title{font-size:13px;text-transform:uppercase;letter-spacing:1.5px;color:var(--coral-strong);font-weight:700;margin:0 0 12px;}

.persona-switcher{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;}
.persona-switcher a{
  display:flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border-radius:999px;
  background:var(--card);border:1px solid var(--border);text-decoration:none;color:var(--ink);font-size:13px;font-weight:700;
}
.persona-switcher a.active{background:var(--coral);border-color:var(--coral);color:#fff;}
.persona-switcher .dot{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--coral),var(--teal));overflow:hidden;flex-shrink:0;}
.persona-switcher .dot img{width:100%;height:100%;object-fit:cover;display:block;}

.pain-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;}
.pain-list li{display:flex;gap:10px;font-size:14px;line-height:1.4;}
.pain-list .n{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--coral-bg);color:var(--coral-text);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;}

.messaging-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media (max-width:560px){.messaging-grid{grid-template-columns:1fr;}}
.messaging-grid .item{background:var(--surface-soft);border-left:3px solid var(--teal);border-radius:0 10px 10px 0;padding:12px 14px;}
.messaging-grid .item .label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--teal-text);font-weight:700;margin-bottom:4px;}
.messaging-grid .item p{margin:0;font-size:13.5px;line-height:1.45;}

.moodboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
@media (max-width:560px){.moodboard-grid{grid-template-columns:1fr;}}
.moodboard-grid figure{margin:0;}
.moodboard-grid img{width:100%;border-radius:10px;display:block;aspect-ratio:4/3;object-fit:cover;background:var(--surface-soft);}
.moodboard-grid figcaption{font-size:11.5px;color:var(--muted);margin-top:4px;}

.two-col{display:grid;grid-template-columns:1.1fr 1fr;gap:18px;align-items:center;}
@media (max-width:560px){.two-col{grid-template-columns:1fr;}}
.chart-box{position:relative;height:260px;}
.score-total{text-align:center;}
.score-total .num{font-size:42px;font-weight:700;color:var(--coral-strong);}
.score-total .label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;}
.confidence-note{font-size:12.5px;color:var(--coral-text);background:var(--note-bg);border:1px solid var(--note-border);border-radius:8px;padding:10px 12px;margin-top:10px;line-height:1.45;}

ul.plain{list-style:none;padding:0;margin:0;}
ul.plain li{padding:10px 0;border-bottom:1px solid var(--border);font-size:14px;}
ul.plain li:last-child{border-bottom:none;}
.deliverable{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;}
.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;background:var(--surface-soft);color:var(--muted);margin-right:6px;font-weight:700;}
.pill.status-ready{background:var(--coral-bg);color:var(--coral-text);}
.pill.status-published{background:var(--teal-bg);color:var(--teal-text);}

fieldset{border:none;padding:0;margin:0 0 26px;}
legend{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--coral-strong);padding:0 0 10px;border-bottom:1px solid var(--border);width:100%;margin-bottom:18px;font-weight:700;}
.field{margin-bottom:16px;}
label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px;font-weight:600;}
label .req{color:var(--coral);}
label .hint{display:block;font-size:11.5px;color:var(--faint);font-weight:400;margin-top:2px;}
input[type=text],input[type=email],input[type=date],input[type=url],select,textarea{
  width:100%;padding:11px 13px;background:var(--surface-soft);border:1px solid var(--border);
  border-radius:8px;color:var(--ink);font-size:14.5px;font-family:inherit;
}
textarea{min-height:80px;resize:vertical;}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--coral);box-shadow:0 0 0 3px var(--coral-bg);}
.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;}
.checkbox-item{display:flex;align-items:center;gap:8px;font-size:14px;}
.checkbox-item input{width:auto;}
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media (max-width:560px){.row-2{grid-template-columns:1fr;}}

button,.btn{
  display:inline-block;padding:13px 20px;background:var(--coral);color:#fff;border:none;border-radius:8px;
  font-size:13.5px;font-weight:700;letter-spacing:0.3px;cursor:pointer;text-decoration:none;text-align:center;
  transition:background 0.15s ease;
}
button.full{width:100%;padding:15px;}
.btn-small{padding:7px 14px;font-size:12px;}
.btn-secondary{background:transparent;border:1.5px solid var(--teal);color:var(--teal-text);}
button:hover,.btn:hover{background:var(--coral-strong);}
.btn-secondary:hover{background:var(--teal-bg);}
.footer-note{text-align:center;color:var(--faint);font-size:11.5px;margin-top:24px;}
.hp{position:absolute;left:-9999px;}
#result-msg,.msg{display:none;text-align:center;padding:18px;border-radius:8px;margin-bottom:20px;font-size:13.5px;}
#result-msg.success,.msg.success{display:block;background:var(--teal-bg);border:1px solid var(--teal);color:var(--teal-text);}
#result-msg.error,.msg.error{display:block;background:#fbebe8;border:1px solid #f0c9c1;color:var(--red);}
.empty{color:var(--faint);font-size:13.5px;font-style:italic;}
