:root {
  --ink:#173c39;
  --muted:#607975;
  --cream:#f7f4ec;
  --paper:#fffdf8;
  --sage:#8fa99b;
  --sage-light:#dfe9df;
  --terracotta:#c98267;
  --line:rgba(23,60,57,.13);
  --shadow:0 22px 60px rgba(29,60,55,.12);
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:"Segoe UI",system-ui,-apple-system,sans-serif; -webkit-font-smoothing:antialiased; }
button, textarea, input { font:inherit; }
button, input[type="range"] { cursor:pointer; }
.topbar { height:76px; padding:0 clamp(20px,6vw,84px); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); background:rgba(247,244,236,.9); backdrop-filter:blur(14px); position:sticky; top:0; z-index:20; }
.brand { color:var(--ink); text-decoration:none; font:26px Georgia,serif; display:flex; gap:9px; align-items:center; }
.brand-mark { width:30px; height:30px; display:grid; place-items:center; border:1px solid var(--ink); border-radius:50%; font-size:24px; }
.back-link { color:var(--ink); text-decoration:none; font-size:13px; font-weight:700; }
main { overflow:hidden; }
.intro { min-height:430px; padding:clamp(60px,9vw,112px) max(24px,calc((100vw - 1232px)/2)); display:grid; grid-template-columns:1.2fr .8fr; align-items:center; gap:50px; background:radial-gradient(circle at 82% 46%,rgba(255,255,255,.55) 0 15%,transparent 15.3%),linear-gradient(140deg,#edf1e8,#e7d8cc); }
.eyebrow { margin:0 0 13px; color:var(--terracotta); font-size:10px; font-weight:800; letter-spacing:.17em; }
h1,h2,p { margin-top:0; }
h1 { margin-bottom:21px; font:400 clamp(52px,8vw,88px)/.98 Georgia,serif; letter-spacing:-.035em; }
.intro-copy { max-width:650px; color:var(--muted); font-size:18px; line-height:1.65; }
.intro-notes { display:flex; flex-wrap:wrap; gap:10px; margin-top:25px; }
.intro-notes span { padding:9px 13px; border:1px solid var(--line); border-radius:99px; background:rgba(255,253,248,.55); color:var(--muted); font-size:11px; }
.intro-orbit { justify-self:center; width:230px; height:230px; border:1px solid rgba(23,60,57,.22); border-radius:50%; display:grid; place-content:center; text-align:center; position:relative; }
.intro-orbit::before,.intro-orbit::after { content:""; position:absolute; inset:24px; border:1px solid rgba(201,130,103,.35); border-radius:50%; }
.intro-orbit::after { inset:-24px 52px; transform:rotate(48deg); }
.intro-orbit span { font:400 70px Georgia,serif; line-height:.9; }
.intro-orbit small { margin-top:8px; color:var(--muted); }
.instructions { max-width:1232px; margin:70px auto 34px; padding:30px; display:grid; grid-template-columns:54px 1fr; gap:20px; background:var(--ink); color:white; border-radius:24px; }
.instructions > span { width:48px; height:48px; display:grid; place-items:center; border-radius:50%; background:var(--terracotta); font:700 13px Georgia,serif; }
.instructions h2,.panel-heading h2,.wheel-heading h2 { margin:0 0 9px; font:400 31px Georgia,serif; }
.instructions p:last-child { margin:0; color:#c8d8d3; line-height:1.65; }
.assessment-layout { max-width:1232px; margin:0 auto 65px; display:grid; grid-template-columns:.9fr 1.1fr; gap:18px; align-items:start; }
.scores-panel,.wheel-panel { padding:30px; border:1px solid var(--line); border-radius:24px; background:var(--paper); }
.panel-heading,.wheel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:20px; }
.panel-heading > span,.average-chip { padding:8px 11px; border-radius:99px; background:var(--sage-light); color:var(--ink); font-size:10px; font-weight:800; white-space:nowrap; }
.score-list { display:grid; gap:9px; }
.score-card { display:grid; grid-template-columns:34px 1fr 48px; gap:12px; align-items:center; padding:13px; border:1px solid var(--line); border-radius:14px; background:#fbfaf6; }
.area-number { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; color:white; font-size:11px; font-weight:800; }
.score-info strong { display:block; margin-bottom:8px; font:400 17px Georgia,serif; }
.score-info input { width:100%; height:4px; accent-color:var(--area-color); }
.score-value { width:46px; height:42px; border:1px solid var(--line); border-radius:10px; background:white; color:var(--ink); font-weight:800; text-align:center; }
.score-value:focus { outline:2px solid var(--area-color); outline-offset:1px; }
.primary-button,.secondary-button,.text-button { border:0; }
.primary-button { width:100%; margin-top:20px; padding:15px 18px; border-radius:99px; background:var(--ink); color:white; font-weight:800; }
.primary-button span { margin-left:12px; }
.form-message { min-height:17px; margin:8px 0 0; color:var(--terracotta); font-size:11px; text-align:center; }
.wheel-panel { position:sticky; top:94px; }
.canvas-wrap { width:100%; aspect-ratio:1; }
canvas { width:100%; height:100%; display:block; }
.wheel-hint { max-width:560px; margin:10px auto 0; color:var(--muted); font-size:11px; line-height:1.5; text-align:center; }
.insights { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:18px; }
.insights article { padding:14px; border-radius:13px; background:var(--sage-light); }
.insights article:last-child { background:#f1dfd7; }
.insights span,.insights strong { display:block; }
.insights span { margin-bottom:5px; font-size:9px; font-weight:800; letter-spacing:.12em; color:var(--muted); }
.insights strong { font:400 17px Georgia,serif; }
.reflection-section { max-width:1232px; margin:0 auto 65px; padding:clamp(28px,5vw,52px); border-radius:28px; background:#e6eee6; }
.reflection-heading { max-width:720px; margin-bottom:28px; }
.reflection-heading h2,.professional-cta h2 { margin-bottom:12px; font:400 clamp(34px,4vw,49px)/1.05 Georgia,serif; }
.reflection-heading > p:last-child { color:var(--muted); line-height:1.65; }
.question-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.question-grid label { padding:21px; border:1px solid var(--line); border-radius:17px; background:var(--paper); }
.question-grid label > span { display:grid; place-items:center; width:30px; height:30px; margin-bottom:13px; border-radius:50%; background:var(--terracotta); color:white; font-size:10px; font-weight:800; }
.question-grid strong,.question-grid small { display:block; }
.question-grid strong { margin-bottom:6px; font:400 20px/1.25 Georgia,serif; }
.question-grid small { min-height:36px; color:var(--muted); line-height:1.5; }
.question-grid textarea { width:100%; margin-top:15px; padding:13px; resize:vertical; border:1px solid var(--line); border-radius:11px; background:#fbfaf6; color:var(--ink); line-height:1.5; }
.question-grid textarea:focus { outline:2px solid var(--sage); border-color:transparent; }
.wide-question { grid-column:1/-1; }
.reflection-actions { display:flex; align-items:center; flex-wrap:wrap; gap:13px; margin-top:20px; }
.secondary-button { padding:13px 18px; border-radius:99px; background:var(--ink); color:white; font-weight:800; }
.text-button { background:transparent; text-decoration:underline; }
.reflection-actions span { margin-left:auto; color:var(--muted); font-size:10px; }
.professional-cta { max-width:1232px; margin:0 auto 28px; padding:clamp(32px,5vw,55px); display:flex; align-items:center; justify-content:space-between; gap:35px; border-radius:28px; background:var(--ink); color:white; }
.professional-cta > div { max-width:700px; }
.professional-cta p:last-child { margin:0; color:#c8d8d3; line-height:1.6; }
.professional-cta > a { flex:0 0 auto; padding:15px 20px; border-radius:99px; background:var(--paper); color:var(--ink); text-decoration:none; font-weight:800; }
.professional-cta > a span { margin-left:10px; }
.disclaimer { max-width:820px; margin:0 auto 80px; padding:0 22px; text-align:center; color:var(--muted); font-size:11px; line-height:1.6; }
.floating-therapist { position:fixed; z-index:30; right:22px; bottom:22px; display:flex; align-items:center; gap:9px; padding:12px 16px; border-radius:99px; background:var(--terracotta); color:white; text-decoration:none; box-shadow:0 12px 35px rgba(80,45,34,.24); font-size:12px; }
.floating-therapist span { font-size:20px; }
footer { padding:28px max(24px,calc((100vw - 1232px)/2)); border-top:1px solid var(--line); display:flex; justify-content:space-between; color:var(--muted); font-size:11px; }
footer p { margin:0; }
footer a { color:var(--ink); text-decoration:none; font:18px Georgia,serif; }

@media (max-width:900px) {
  .intro { grid-template-columns:1fr; }
  .intro-orbit { display:none; }
  .instructions,.assessment-layout,.reflection-section,.professional-cta { margin-left:18px; margin-right:18px; }
  .assessment-layout { grid-template-columns:1fr; }
  .wheel-panel { position:static; }
}

@media (max-width:620px) {
  .topbar { height:68px; padding:0 18px; }
  .brand { font-size:22px; }
  .back-link { font-size:0; }
  .back-link::after { content:"← Voltar"; font-size:12px; }
  .intro { min-height:auto; padding:58px 22px; }
  h1 { font-size:53px; }
  .intro-copy { font-size:16px; }
  .instructions { grid-template-columns:1fr; padding:24px; margin-top:28px; }
  .instructions h2,.panel-heading h2,.wheel-heading h2 { font-size:27px; }
  .scores-panel,.wheel-panel { padding:20px 16px; }
  .score-card { grid-template-columns:31px 1fr 43px; padding:11px 9px; gap:9px; }
  .score-info strong { font-size:15px; }
  .score-value { width:42px; }
  .question-grid { grid-template-columns:1fr; }
  .wide-question { grid-column:auto; }
  .reflection-section { padding:28px 18px; }
  .reflection-actions { align-items:stretch; flex-direction:column; }
  .reflection-actions span { margin-left:0; text-align:center; }
  .professional-cta { align-items:stretch; flex-direction:column; }
  .professional-cta > a { text-align:center; }
  .floating-therapist { right:12px; bottom:12px; }
  footer { padding-bottom:84px; flex-direction:column; gap:10px; }
}

@media print {
  .topbar,.floating-therapist,.professional-cta,.primary-button,.reflection-actions { display:none!important; }
  body { background:white; }
  .intro { min-height:auto; padding:25px 0; background:white; }
  .intro-orbit,.instructions,.scores-panel,.wheel-hint { display:none; }
  .assessment-layout { display:block; margin:0; }
  .wheel-panel,.reflection-section { border:0; padding:10px 0; margin:0; background:white; }
  .question-grid { gap:8px; }
  .question-grid label { break-inside:avoid; }
  .reflection-section[hidden] { display:none!important; }
}
