@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');

:root {
  --ink: #17201f;
  --muted: #63716d;
  --line: #dce3df;
  --paper: #ffffff;
  --canvas: #f3f5f1;
  --cream: #f1ece1;
  --green: #213e41;
  --green-2: #31595a;
  --mint: #91e6b8;
  --mint-soft: #ddf6e8;
  --red: #a83a43;
  --amber: #7b5a08;
  --amber-soft: #fff8df;
  --shadow: 0 18px 55px rgba(20, 42, 39, .09);
  --radius: 22px;
  --radius-sm: 13px;
  --font-display: "Manrope", system-ui, sans-serif;
  --font-body: "DM Sans", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--canvas); color: var(--ink); font-family: var(--font-body); line-height: 1.55; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
img { max-width: 100%; display: block; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { font-family: var(--font-display); letter-spacing: -.035em; line-height: 1.12; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.muted { color: var(--muted); }
.eyebrow { display: inline-block; color: var(--green-2); font-size: .74rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
:focus-visible { outline: 3px solid var(--green-2); outline-offset: 2px; }

.brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.brand-mark { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: var(--green); color: var(--mint); font: 800 .9rem var(--font-display); letter-spacing: -.04em; }
.brand strong, .brand small { display: block; }
.brand strong { font: 800 1rem var(--font-display); }
.brand small { margin-top: 1px; color: var(--muted); font-size: .72rem; }
.brand-compact .brand-mark { width: 38px; height: 38px; border-radius: 11px; }

.button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 17px; border: 1px solid transparent; border-radius: 12px; cursor: pointer; text-decoration: none; font-weight: 700; transition: transform .18s ease, background .18s ease, border-color .18s ease; }
.button:hover { transform: translateY(-1px); }
.button:disabled { cursor: not-allowed; opacity: .52; transform: none; }
.button-primary { background: var(--green); color: #fff; }
.button-primary:hover { background: var(--green-2); }
.button-secondary { background: var(--mint-soft); color: var(--green); border-color: #bce9d0; }
.button-ghost { background: #fff; color: var(--ink); border-color: var(--line); }
.button-danger { background: #fff1f1; color: var(--red); border-color: #f0c9cd; }
.button-light { background: #fff; color: var(--green); }
.button-small { min-height: 36px; padding: 7px 12px; border-radius: 10px; font-size: .84rem; }
.button-full { width: 100%; }

.flash { margin: 0 0 18px; padding: 14px 17px; border-radius: 12px; font-weight: 600; }
.flash-success { background: #e1f7e9; color: #1e623b; border: 1px solid #bce7cb; }
.flash-error { background: #fff0f1; color: #8d2932; border: 1px solid #f2c5c9; }
.flash-info { background: #edf3ff; color: #294d84; border: 1px solid #cad9f4; }

label { display: grid; gap: 7px; color: #33423f; font-size: .86rem; font-weight: 700; }
input, textarea, select { width: 100%; border: 1px solid #ced8d4; border-radius: 11px; background: #fff; color: var(--ink); padding: 11px 13px; outline: 0; font-weight: 500; }
input:focus, textarea:focus, select:focus { border-color: var(--green-2); box-shadow: 0 0 0 3px rgba(49, 89, 90, .12); }
textarea { resize: vertical; }
.form-stack { display: grid; gap: 16px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 15px; }
.form-status { color: var(--muted); font-size: .84rem; font-weight: 600; }
.form-status.is-error { color: var(--red); }

/* Autenticação */
.auth-page { min-height: 100vh; background: radial-gradient(circle at 15% 10%, rgba(145,230,184,.35), transparent 28%), radial-gradient(circle at 85% 90%, rgba(33,62,65,.18), transparent 30%), var(--cream); }
.auth-shell { min-height: 100vh; display: grid; place-items: center; padding: 28px; }
.auth-card { width: min(100%, 480px); padding: 36px; border: 1px solid rgba(33,62,65,.1); border-radius: 28px; background: rgba(255,255,255,.9); box-shadow: var(--shadow); }
.auth-copy { margin: 42px 0 26px; }
.auth-copy h1 { margin: 8px 0 12px; font-size: clamp(2rem, 6vw, 3rem); }
.auth-copy p { color: var(--muted); }

/* Administração */
.admin-page { background: #f4f6f4; }
.admin-header { position: sticky; z-index: 30; top: 0; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.94); backdrop-filter: blur(14px); }
.admin-header-inner { width: min(1180px, calc(100% - 40px)); min-height: 72px; margin: auto; display: flex; align-items: center; gap: 24px; }
.admin-context { margin-left: auto; display: flex; align-items: flex-end; flex-direction: column; line-height: 1.2; }
.admin-context span { font-weight: 700; }
.admin-context small { color: var(--muted); }
.admin-main { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 48px 0 80px; }
.admin-main.narrow { width: min(900px, calc(100% - 40px)); }
.admin-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin: 8px 0 28px; }
.admin-title h1 { margin: 6px 0 6px; font-size: clamp(2.1rem, 5vw, 3.8rem); }
.admin-title p { margin: 0; color: var(--muted); }
.panel-detail-title { align-items: center; }
.back-link { display: inline-block; margin-bottom: 25px; color: var(--green-2); font-weight: 700; text-decoration: none; }
.back-link::before { content: "‹"; margin-right: 7px; }
.panel-table-card, .editor-card, .side-card, .share-card, .readiness-card { border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: 0 10px 35px rgba(20,42,39,.045); }
.panel-table-head, .panel-row { display: grid; grid-template-columns: 2fr 1fr .7fr 1fr 30px; gap: 18px; align-items: center; padding: 17px 22px; }
.panel-table-head { color: var(--muted); border-bottom: 1px solid var(--line); font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.panel-row { text-decoration: none; border-bottom: 1px solid #edf0ee; transition: background .15s ease; }
.panel-row:last-child { border-bottom: 0; }
.panel-row:hover { background: #f8fbf9; }
.panel-row span:first-child strong, .panel-row span:first-child small { display: block; }
.panel-row small { color: var(--muted); }
.row-arrow { color: var(--green); font-size: 1.8rem; }
.status { display: inline-flex; width: fit-content; padding: 5px 9px; border-radius: 999px; background: #eef1ef; color: #53605d; font-size: .74rem; font-weight: 800; }
.status-published, .status-updated, .status-completed, .status-done { background: #dff4e7; color: #23613c; }
.status-review, .status-sent { background: #fff1cc; color: #7b5a08; }
.status-archived { background: #eee; color: #777; }
.status-available { background: #e7effd; color: #315d93; }
.empty-state { padding: 50px 30px; text-align: center; color: var(--muted); }
.empty-state strong { display: block; margin-bottom: 6px; color: var(--ink); font: 700 1.1rem var(--font-display); }
.editor-card { padding: 25px; }
.form-section + .form-section { margin-top: 32px; padding-top: 28px; border-top: 1px solid var(--line); }
.form-section h2, .editor-card h2, .side-card h2 { margin-bottom: 8px; font-size: 1.25rem; }
.section-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 17px; }
.section-heading p { margin: 0; color: var(--muted); }
.section-heading code { padding: 1px 5px; border-radius: 5px; background: #eef1ef; font-size: .85em; }
.code-editor { min-height: 560px; padding: 18px; background: #17201f; color: #dff4e7; border: 0; font: 13px/1.65 Consolas, monospace; tab-size: 2; }
.form-actions { margin-top: 24px; display: flex; justify-content: flex-end; gap: 10px; }
.admin-columns { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }
.admin-primary { display: grid; gap: 24px; }
.admin-secondary { display: grid; gap: 18px; position: sticky; top: 96px; }
.side-card { padding: 20px; }
.side-thumb { display: block; width: 100%; max-height: 220px; object-fit: contain; margin-bottom: 12px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.side-card form + form { margin-top: 10px; }
.side-card p { color: var(--muted); }
.share-card { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; padding: 18px 20px; }
.share-card div { min-width: 0; flex: 1; }
.share-card span, .share-card strong { display: block; }
.share-card span { color: var(--muted); font-size: .78rem; }
.share-card strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.readiness-card { margin-bottom: 24px; padding: 20px 24px; }
.readiness-card h2 { margin-bottom: 10px; font-size: 1.1rem; }
.readiness-card.has-issues { border-left: 4px solid #d99a2b; }
.readiness-card.is-ready { border-left: 4px solid #2f8055; }
.readiness-card ul { margin: 0; padding-left: 20px; color: #5b4a20; display: grid; gap: 6px; font-size: .92rem; }
.readiness-card p { margin: 0; color: var(--muted); }
.admin-creative-list { display: grid; gap: 8px; margin: 14px 0 24px; }
.admin-creative-list article { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 12px 14px; background: #f5f7f5; border-radius: 11px; }
.admin-creative-list strong, .admin-creative-list small { display: block; }
.admin-creative-list small { color: var(--muted); }
.creative-asset-form { margin-left: auto; }
.creative-order-form { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.creative-order-form input { width: 72px; padding: 7px; }
.creative-order-form select { width: auto; padding: 7px 9px; }
.compact-form { padding-top: 22px; border-top: 1px solid var(--line); }
.refinement-admin { display: grid; gap: 8px; padding: 13px 0; border-top: 1px solid var(--line); }
.refinement-admin .file-label { font-size: .78rem; }
.admin-question { padding: 8px 10px; border-radius: 9px; background: #f5f7f5; font-size: .86rem; }
.admin-question summary { cursor: pointer; font-weight: 700; }
.admin-question p { margin: 8px 0 0; color: var(--muted); }
.big-number { color: var(--green); font: 800 2.6rem var(--font-display); }

/* ---------------------------------------------------------------------- */
/* Painel do cliente                                                       */
/* ---------------------------------------------------------------------- */
.client-panel { background: #f1f4f1; }
.client-topbar { position: sticky; z-index: 40; top: 0; min-height: 72px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.94); backdrop-filter: blur(15px); }
.client-topbar-inner { max-width: 1440px; min-height: 72px; margin: auto; padding: 10px 30px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.topbar-progress { width: clamp(210px, 22vw, 270px); margin-left: auto; }
.topbar-progress .execution-progress-head { display: flex; align-items: center; justify-content: space-between; color: var(--green); font-size: .75rem; font-weight: 800; }
.topbar-progress .progress-track { height: 6px; margin-top: 5px; }
.topbar-progress small { display: block; margin-top: 4px; color: var(--muted); font-size: .68rem; line-height: 1.2; }
.topbar-actions { display: flex; align-items: center; gap: 12px; }
.update-chip { padding: 6px 11px; border-radius: 999px; background: var(--mint-soft); color: var(--green); font-size: .75rem; font-weight: 800; }
.client-layout { max-width: 1440px; margin: auto; display: grid; grid-template-columns: 268px minmax(0,1fr); }
.client-sidebar { position: sticky; top: 72px; align-self: start; height: calc(100vh - 72px); padding: 30px 22px; border-right: 1px solid var(--line); background: #fff; overflow-y: auto; }
.client-profile { display: flex; gap: 11px; align-items: center; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.client-profile img, .profile-placeholder { width: 45px; height: 45px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
.profile-placeholder { display: grid; place-items: center; background: var(--green); color: #fff; font: 800 1rem var(--font-display); }
.profile-placeholder.small { width: 30px; height: 30px; font-size: .8rem; }
.client-profile strong, .client-profile small { display: block; }
.client-profile small { color: var(--muted); font-size: .8rem; }
.nav-menu { margin-top: 20px; }
.nav-menu > summary { display: none; }
.client-nav { display: grid; gap: 13px; }
.client-nav-section { display: grid; gap: 2px; }
.client-nav-section + .client-nav-section { padding-top: 12px; border-top: 1px solid #edf1ee; }
.client-nav-group { padding: 0 11px 5px; color: #7a8984; font-size: .63rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.client-nav a { padding: 8px 11px 8px 14px; border-radius: 9px; color: #55635f; text-decoration: none; font-size: .84rem; font-weight: 650; line-height: 1.35; }
.client-nav a:hover { background: #f4f7f5; color: var(--green); }
.client-nav a.is-active { background: var(--mint-soft); color: var(--green); box-shadow: inset 3px 0 var(--green-2); }
.sidebar-progress { display: none; margin-top: 22px; padding: 14px; border-radius: 12px; background: #f1f4f1; }
.sidebar-progress .execution-progress-head { display: flex; justify-content: space-between; font-size: .78rem; font-weight: 700; }
.sidebar-progress small { display: block; margin-top: 8px; color: var(--muted); font-size: .75rem; }
.progress-track { height: 7px; margin-top: 9px; overflow: hidden; border-radius: 99px; background: #d9e1dd; }
.progress-track span { display: block; height: 100%; border-radius: inherit; background: var(--green); transition: width .3s ease; }
.client-main { min-width: 0; padding: 32px clamp(24px, 5vw, 70px) 90px; }

/* Abertura */
.panel-hero { position: relative; overflow: hidden; padding: clamp(28px, 4.5vw, 52px); border-radius: 30px; background: var(--green); color: #fff; box-shadow: var(--shadow); scroll-margin-top: 95px; }
.hero-identity { display: flex; align-items: center; gap: 12px; margin-bottom: 26px; }
.hero-identity img, .hero-identity .profile-placeholder { width: 52px; height: 52px; border: 2px solid rgba(255,255,255,.35); }
.hero-identity strong { display: block; font: 800 1.05rem var(--font-display); }
.hero-identity small { display: block; color: #bcd4cc; font-size: .82rem; }
.panel-hero .eyebrow { color: var(--mint); }
.panel-hero h1 { max-width: 20ch; margin: 12px 0 18px; font-size: clamp(1.9rem, 3.4vw, 3.2rem); line-height: 1.08; }
.hero-summary { max-width: 62ch; margin-bottom: 26px; color: #dce8e3; font-size: 1.04rem; }
.hero-audio { margin-bottom: 26px; }
.process-map { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 18px; }
.process-map-item { position: relative; display: block; min-width: 0; padding: 16px 17px; border: 1px solid #e0e7e3; border-radius: 16px; background: #f7faf8; color: var(--ink); }
.process-map-item > span { display: grid; place-items: center; width: 26px; height: 26px; margin-bottom: 9px; border-radius: 50%; background: var(--green); color: var(--mint); font-size: .76rem; font-weight: 900; }
.process-map strong, .process-map small { display: block; }
.process-map strong { font-size: .92rem; }
.process-map small { margin-top: 4px; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.start-here { scroll-margin-top: 95px; margin-top: 26px; padding: 24px 26px; border: 1px solid var(--line); border-left: 5px solid var(--green); border-radius: 20px; background: rgba(255,255,255,.96); color: var(--ink); }
.start-note { margin: 10px 0 0; color: var(--muted); max-width: 68ch; }
.start-here > .button { margin-top: 18px; }
.start-secondary { margin: 14px 0 0; color: var(--muted); font-size: .88rem; }
.start-secondary a { color: var(--green-2); font-weight: 700; }
.resume-card { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 16px; padding: 16px 18px; border: 1px solid #bce9d0; border-radius: 15px; background: var(--mint-soft); color: var(--green); text-decoration: none; transition: transform .18s ease, border-color .18s ease; }
.resume-card:hover { transform: translateY(-1px); border-color: var(--green-2); }
.resume-card strong { display: block; font-size: 1rem; }
.resume-card small { display: block; margin-top: 3px; color: #3d6157; font-size: .84rem; }
.resume-card em { flex: 0 0 auto; font-style: normal; font-size: 1.2rem; }

/* Fecho de etapa: uma ação, ligada ao mesmo item do plano */
/* Fecho de etapa: é um portão entre etapas, não mais um cartão de conteúdo.
   O fundo escuro só aparece aqui, no herói e no próximo passo, ou seja, nos
   momentos em que o painel pede uma ação em vez de oferecer leitura. */
.stage-action { position: relative; overflow: hidden; margin: 30px 0; padding: clamp(24px, 3.4vw, 34px); border-radius: 24px; background: var(--green); color: #fff; box-shadow: 0 16px 40px rgba(20,42,39,.16); }
.stage-action::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 6px; background: linear-gradient(180deg, var(--mint), rgba(145,230,184,.25)); }
.stage-action-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-bottom: 12px; }
.stage-action .eyebrow { color: var(--mint); }
.stage-action-marks { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.stage-action-step { padding: 5px 11px; border: 1px solid rgba(145,230,184,.35); border-radius: 999px; color: var(--mint); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.stage-action-seal { display: none; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px; background: var(--mint); color: var(--green); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.stage-action-seal::before { content: "✓"; font-size: .82rem; }
.stage-action.is-done .stage-action-seal { display: inline-flex; }
.stage-action-intro { margin: 0 0 18px; max-width: 62ch; color: #d9e8e2; font-size: 1.02rem; }
.stage-action .checklist-group { margin-top: 0; padding: 6px 20px 8px; border-radius: 16px; background: #fff; color: var(--ink); }
.stage-action .checklist-item { padding: 16px 0; }
.stage-action .checklist-item strong { font-size: 1.05rem; }
.stage-action .prep-count { color: #b7cfc6; }
.stage-action .prep-count span { color: #fff; }

/* Resolvido, o portão continua sendo o mesmo objeto: mesma forma, mesma faixa,
   só que apagado. Trocar de família aqui faria ele virar mais um cartão. */
.stage-action.is-done { padding: 22px clamp(20px, 3vw, 28px); background: #1b2e2f; box-shadow: none; }
.stage-action.is-done::before { background: rgba(145,230,184,.4); }
.stage-action.is-done .eyebrow { color: #7fb9a2; }
.stage-action.is-done .stage-action-step { border-color: rgba(255,255,255,.16); color: #8fb9a6; }
.stage-action.is-done .stage-action-intro { margin-bottom: 14px; color: #9db3ac; font-size: .95rem; }
.stage-action.is-done .checklist-group { background: rgba(255,255,255,.06); }
.stage-action.is-done .checklist-item { padding: 13px 0; }
.stage-action.is-done .checklist-item strong { color: #b9cdc6; font-size: 1rem; text-decoration-color: rgba(185,205,198,.7); }
.stage-action.is-done .checklist-text small { color: #9db3ac; }
.stage-action.is-done .item-kind { background: rgba(255,255,255,.1); color: #b7cfc6; }
.stage-action.is-done .checkmark { border-color: rgba(255,255,255,.35); }
.stage-action.is-done .prep-count { color: #90a8a1; }
.stage-action.is-done .prep-count span { color: #e7f1ed; }
.persona-quote { margin: 0 0 16px; padding: 18px 20px; border-left: 4px solid var(--green); border-radius: 0 14px 14px 0; background: #f5f8f5; }
.persona-quote p { margin: 6px 0 0; font-family: var(--font-display); font-size: clamp(1.02rem, 1.6vw, 1.18rem); font-weight: 600; letter-spacing: -.015em; line-height: 1.4; }
.persona-quote p::before { content: "“"; }
.persona-quote p::after { content: "”"; }
.script-warning { margin: 0 0 18px; padding: 14px 17px; border: 1px solid #f0d99a; border-radius: 13px; background: var(--amber-soft); }
.script-warning strong { display: block; color: var(--amber); }
.script-warning p { margin: 5px 0 0; color: #6a5316; font-size: .9rem; }
.script-slot { padding: 1px 5px; border-radius: 5px; background: #ffe9a8; color: #6a5316; font-weight: 700; }
.plan-meta.is-single { grid-template-columns: 1fr; }
.prep-count { margin: 12px 0 0; color: var(--muted); font-size: .82rem; }
.prep-count span { font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; }
.pieces-scope { margin-bottom: 14px; }
.pieces-scope strong { color: var(--ink); }
.other-pieces { margin-top: 20px; border: 1px solid var(--line); border-radius: 16px; background: #fbfcfb; }
.other-pieces > summary { padding: 15px 18px; color: var(--green-2); font-weight: 700; cursor: pointer; }
.other-pieces-body { padding: 0 18px 18px; }
.expectation-note { margin: 14px 0 0; padding: 12px 14px; border-radius: 12px; background: #f1f4f1; color: var(--muted); font-size: .89rem; }
.expectation-note strong { color: var(--ink); }
.expectation-callout { margin-bottom: 22px; padding: 16px 18px; border: 1px solid #e4e9e6; border-radius: 14px; background: #f6f8f6; }
.expectation-callout span { display: block; margin-bottom: 6px; color: var(--green-2); font-size: .7rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.expectation-callout p { margin: 0; color: #3e4c48; }
.hero-meta { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 22px; color: #c3d7d0; font-size: .82rem; }

/* Player de audio com ondas */
.audio-player { display: grid; gap: 9px; margin: 0; }
.audio-label { color: var(--green-2); font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.audio-player.on-dark .audio-label { color: var(--mint); }
.audio-player audio { width: 100%; height: 40px; }
.audio-player.is-enhanced audio { display: none; }
.audio-shell { display: flex; align-items: center; gap: 14px; padding: 12px 16px; border: 1px solid #e0e7e3; border-radius: 18px; background: #f7faf8; }
.audio-player.on-dark .audio-shell { border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.08); }
.audio-toggle { position: relative; flex: 0 0 auto; display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 0; border-radius: 50%; background: var(--green); color: #fff; cursor: pointer; transition: transform .18s ease, background .18s ease; }
.audio-toggle:hover { transform: scale(1.05); }
.audio-toggle svg { width: 21px; height: 21px; fill: currentColor; }
.audio-toggle .icon-pause, .is-playing .audio-toggle .icon-play { display: none; }
.is-playing .audio-toggle .icon-pause { display: block; }
.audio-player.on-dark .audio-toggle { background: var(--mint); color: var(--green); }
.is-playing .audio-toggle::after { content: ""; position: absolute; inset: -6px; border: 2px solid currentColor; border-radius: 50%; opacity: .25; animation: audioPulse 1.9s ease-out infinite; }
.audio-wave { flex: 1 1 auto; display: flex; align-items: center; gap: 3px; height: 46px; min-width: 0; cursor: pointer; }
.audio-wave span { flex: 1 1 auto; min-width: 2px; height: 100%; border-radius: 99px; background: #c9d6d0; transform: scaleY(var(--h, .3)); transform-origin: center; }
.audio-player.on-dark .audio-wave span { background: rgba(255,255,255,.26); }
.audio-wave span.is-played { background: var(--green); }
.audio-player.on-dark .audio-wave span.is-played { background: var(--mint); }
.is-idle .audio-wave span { transition: transform .4s cubic-bezier(.22,.61,.36,1); transition-delay: calc(var(--i) * 6ms); }
.audio-wave:focus-visible { outline: 3px solid var(--green-2); outline-offset: 4px; border-radius: 8px; }
.audio-player.on-dark .audio-wave:focus-visible { outline-color: var(--mint); }
.is-simple.is-playing .audio-wave span { animation: audioBeat 1s ease-in-out infinite alternate; animation-delay: calc(var(--i) * -47ms); }
.audio-time { flex: 0 0 auto; display: flex; align-items: baseline; gap: 5px; color: var(--muted); font-size: .82rem; font-variant-numeric: tabular-nums; }
.audio-time b { color: var(--ink); font-weight: 700; }
.audio-time i { font-style: normal; opacity: .5; }
.audio-player.on-dark .audio-time { color: #b9cfc7; }
.audio-player.on-dark .audio-time b { color: #fff; }
.audio-player.is-broken .audio-shell { opacity: .7; }

@keyframes audioPulse {
  0% { transform: scale(.92); opacity: .3; }
  70% { transform: scale(1.18); opacity: 0; }
  100% { transform: scale(1.18); opacity: 0; }
}
@keyframes audioBeat {
  from { transform: scaleY(calc(var(--h, .3) * .55)); }
  to { transform: scaleY(min(1, calc(var(--h, .3) * 1.35))); }
}

/* Seções */
.stage-banner { scroll-margin-top: 95px; margin-top: 54px; padding: 28px clamp(24px,4vw,42px); border: 1px solid #bfd5cb; border-left: 6px solid var(--green); border-radius: 20px; background: linear-gradient(135deg,#eef6f2,#f9fbfa); }
.stage-banner > span { color: var(--green-2); font-size: .7rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.stage-banner h2 { margin: 6px 0 8px; font-size: clamp(1.55rem,3vw,2.25rem); }
.stage-banner p { max-width: 72ch; margin: 0; color: var(--muted); }
.stage-materials { border-color: #d6dec6; border-left-color: #71854c; background: linear-gradient(135deg,#f3f6ec,#fbfcf8); }
.stage-execution { border-color: #d7d0b8; border-left-color: var(--amber); background: linear-gradient(135deg,#faf5e6,#fffdf8); }
.stage-banner + .content-section { margin-top: 16px; }
.content-section { scroll-margin-top: 95px; margin-top: 26px; padding: clamp(24px, 4vw, 42px); border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.section-title { display: flex; gap: 20px; align-items: flex-start; justify-content: space-between; margin-bottom: 24px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }

/* Seções recolhíveis: fechadas, o cabeçalho é o inventário da entrega ----- */
.content-section.is-collapsible { padding: 0; }
.section-shell { border-radius: var(--radius); }
summary.section-title { margin: 0; padding: clamp(20px, 3.2vw, 30px) clamp(22px, 4vw, 42px); border-bottom: 1px solid transparent; border-radius: var(--radius); cursor: pointer; list-style: none; align-items: center; transition: background .16s ease; }
summary.section-title::-webkit-details-marker { display: none; }
summary.section-title:hover { background: #f6faf8; }
summary.section-title:focus-visible { outline: 3px solid var(--green-2); outline-offset: -3px; }
.section-shell[open] > summary.section-title { border-bottom-color: var(--line); border-radius: var(--radius) var(--radius) 0 0; }
.section-summary { min-width: 0; }
.section-summary h2 { margin: 0 0 8px; font-size: clamp(1.35rem, 2.4vw, 1.9rem); line-height: 1.15; }
.section-summary p { margin: 0; max-width: 58ch; color: var(--muted); }
.section-summary .eyebrow { display: block; margin-bottom: 8px; }
.section-facts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.section-facts b { padding: 5px 12px; border: 1px solid var(--line); border-radius: 999px; background: #f4f8f6; color: var(--ink-soft); font-size: .82rem; font-weight: 600; }
.section-shell[open] .section-facts { display: none; }
.section-tasks[hidden] { display: none; }
.section-tasks { display: inline-flex; align-items: center; gap: 7px; margin-top: 14px; padding: 5px 13px; border-radius: 999px; background: rgba(20, 92, 65, .1); color: var(--green); font-size: .82rem; font-weight: 700; }
.section-tasks.is-done { background: rgba(20, 92, 65, .16); }
.section-shell[open] .section-tasks { display: none; }
.section-chevron { flex: 0 0 auto; width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 50%; background: #fff; position: relative; transition: transform .2s ease, background .2s ease; }
.section-chevron::before { content: ''; position: absolute; inset: 0; margin: auto; width: 9px; height: 9px; border-right: 2px solid var(--green); border-bottom: 2px solid var(--green); transform: translateY(-2px) rotate(45deg); }
.section-shell[open] > summary .section-chevron { transform: rotate(180deg); background: #f0f6f3; }
summary.section-title:hover .section-chevron { background: #eaf3ee; }
.section-body { padding: clamp(20px, 3.2vw, 30px) clamp(22px, 4vw, 42px) clamp(24px, 4vw, 42px); }
.section-body > .section-tools { display: flex; justify-content: flex-end; margin-bottom: 18px; }
.section-lead { max-width: 62ch; color: var(--muted); }
@media (prefers-reduced-motion: reduce) {
  .section-chevron, summary.section-title { transition: none; }
}
.section-title h2 { margin: 0 0 6px; font-size: clamp(1.5rem, 3vw, 2.1rem); }
.section-title p { margin: 0; max-width: 60ch; color: var(--muted); }
.section-tools { flex: 0 0 auto; }
.section-lead { max-width: 62ch; margin-bottom: 22px; font-family: var(--font-display); font-size: clamp(1.15rem, 2vw, 1.45rem); font-weight: 700; letter-spacing: -.02em; line-height: 1.3; }
.section-note { max-width: 66ch; color: var(--muted); }
.subsection-title { margin: 34px 0 16px; padding-top: 22px; border-top: 1px dashed var(--line); font-size: 1.15rem; }
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 13px; }
.field-grid.is-compact { grid-template-columns: 1fr; }
.field-item { min-width: 0; padding: 19px; border: 1px solid #e4e9e6; border-radius: 15px; background: #fafbf9; }
.field-item h3 { margin-bottom: 8px; color: var(--green); font-size: .78rem; letter-spacing: .05em; text-transform: uppercase; }
.field-item p:last-child { margin-bottom: 0; }
.more-block { margin-top: 16px; border: 1px solid var(--line); border-radius: 14px; background: #fbfcfb; }
.more-block > summary { padding: 14px 18px; color: var(--green-2); font-weight: 700; cursor: pointer; }
.more-body { padding: 0 18px 18px; }
.ethics-note { margin-top: 24px; padding: 18px 20px; border: 1px solid #f0d99a; border-radius: 14px; background: var(--amber-soft); }
.ethics-note strong { display: block; margin-bottom: 6px; color: var(--amber); }
.ethics-note p { margin: 0; color: #6a5316; }
.ethics-note.is-inline { margin: 16px 0 20px; }
.strategy-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.strategy-item { min-width: 0; padding: 19px; border: 1px solid #e4e9e6; border-radius: 15px; background: #fafbf9; }
.strategy-item h3 { margin-bottom: 8px; color: var(--green); font-size: .82rem; letter-spacing: .04em; text-transform: uppercase; }
.journey-list { display: grid; gap: 12px; }
.journey-item { display: grid; grid-template-columns: 43px 1fr; gap: 15px; align-items: start; padding: 17px; border-radius: 15px; background: #f5f8f5; }
.journey-item > span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--mint-soft); color: var(--green); font-weight: 800; }
.journey-item h3 { margin: 2px 0 5px; font-size: 1rem; }
.journey-item p { margin-bottom: 0; color: var(--muted); }

/* Criativos */
.creative-toolbar { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-bottom: 14px; }
.creative-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.creative-card { overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.creative-image { aspect-ratio: 4/5; background: #edf0ee; overflow: hidden; }
.creative-image img { width: 100%; height: 100%; object-fit: cover; }
.creative-carousel { position: relative; width: 100%; height: 100%; overflow: hidden; }
.creative-carousel:focus-visible { outline: 3px solid var(--green-2); outline-offset: -4px; }
.creative-carousel .creative-slide { width: 100%; height: 100%; object-fit: cover; }
.carousel-arrow { position: absolute; z-index: 2; top: 50%; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; transform: translateY(-50%); border: 1px solid rgba(255,255,255,.72); border-radius: 50%; background: rgba(24,43,44,.78); color: #fff; font-size: 1.7rem; line-height: 1; cursor: pointer; }
.carousel-prev { left: 12px; }
.carousel-next { right: 12px; }
.carousel-counter { position: absolute; z-index: 2; right: 12px; bottom: 12px; padding: 5px 9px; border-radius: 999px; background: rgba(24,43,44,.78); color: #fff; font-size: .78rem; }
.creative-image-placeholder { height: 100%; display: grid; place-content: center; gap: 8px; padding: 24px; text-align: center; color: var(--muted); }
.creative-image-placeholder strong { color: var(--green); }
.creative-body { padding: 20px; }
.creative-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 8px; }
.cycle-tag { padding: 4px 9px; border-radius: 999px; background: var(--green); color: var(--mint); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.creative-type { color: var(--green-2); font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.creative-body h4 { margin: 4px 0 12px; font-size: 1.2rem; }
.creative-details { margin: 14px 0 4px; border: 1px solid var(--line); border-radius: 13px; background: #fafbf9; overflow: hidden; }
.creative-details > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; color: var(--green); font-size: .86rem; font-weight: 800; cursor: pointer; list-style: none; }
.creative-details > summary::-webkit-details-marker { display: none; }
.creative-details > summary::after { content: "+"; color: var(--green-2); font-size: 1.15rem; line-height: 1; }
.creative-details[open] > summary { border-bottom: 1px solid var(--line); background: #f3f7f4; }
.creative-details[open] > summary::after { content: "−"; }
.creative-details-body { padding: 15px; }
.creative-meta { margin-bottom: 6px; color: var(--muted); font-size: .88rem; }
.copy-label { display: block; margin-bottom: 5px; color: var(--green-2); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.creative-copy { margin: 14px 0; padding: 15px 16px; border-radius: 13px; background: #f6f8f6; font-size: .95rem; }
.creative-copy p:last-child { margin-bottom: 0; }
.creative-cta { margin: 14px 0; padding: 13px 16px; border: 1px dashed #bce9d0; border-radius: 13px; background: var(--mint-soft); color: var(--green); font-weight: 600; }
.post-preview { margin: 14px 0; }
.post-preview > summary { color: var(--green-2); font-size: .86rem; font-weight: 700; cursor: pointer; }
.preview-frame { max-width: 320px; margin-top: 12px; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: #fff; }
.preview-head { display: flex; align-items: center; gap: 9px; padding: 10px 12px; }
.preview-head img { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; }
.preview-head b { font-size: .86rem; }
.preview-image { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.preview-caption { padding: 11px 12px; color: #3e4c48; font-size: .84rem; line-height: 1.45; }
.creative-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }

/* Opções de bio */
.bio-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 14px 0 30px; }
.bio-option { display: flex; flex-direction: column; align-items: flex-start; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: #f8faf8; }
.bio-option > span { color: var(--green-2); font-size: .68rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.bio-option h4 { margin: 5px 0 12px; font-size: 1rem; }
.bio-text { flex: 1 1 auto; width: 100%; margin-bottom: 16px; padding: 14px; border-radius: 12px; background: #fff; color: var(--ink); font-size: .92rem; }
.bio-text p { margin: 0; }

/* Roteiro para o primeiro contato */
.contact-script { margin: 30px 0 34px; padding: 24px; border: 1px solid #cfe0d8; border-radius: 18px; background: #f7faf8; }
.contact-script-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.contact-script-head h3 { margin: 5px 0 7px; font-size: 1.25rem; }
.contact-script-head p { max-width: 760px; margin: 0; color: var(--muted); }
.contact-script-flow { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.contact-script-card { padding: 17px 18px; border: 1px solid #e0e7e3; border-radius: 14px; background: #fff; }
.contact-script-card h4 { margin: 0 0 8px; font-size: .96rem; }
.contact-script-card p, .contact-script-support p { margin: 0 0 9px; color: var(--muted); font-size: .9rem; }
.contact-script-support { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-top: 18px; }
.contact-script-support > div { padding: 18px; border-radius: 14px; background: #eef4f1; }
.contact-script-support h4 { margin: 0 0 12px; }
.contact-script-support article + article { margin-top: 14px; padding-top: 14px; border-top: 1px solid #d8e4de; }
.contact-script-support strong { display: block; margin-bottom: 5px; font-size: .9rem; }
.text-action { padding: 0; border: 0; background: transparent; color: var(--green-2); font: inherit; font-size: .82rem; font-weight: 800; cursor: pointer; }
.text-action:hover { text-decoration: underline; }

/* Plano */
.plan-meta { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; margin-bottom: 24px; }
.plan-meta > div { padding: 15px 18px; border-radius: 14px; background: #f5f8f5; }
.plan-meta span { display: block; color: var(--muted); font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.plan-meta strong { display: block; margin-top: 4px; }
.plan-block + .plan-path { margin-top: 34px; }
.checklist-item.is-compact { padding: 10px 0; gap: 9px; }
.checklist-item.is-compact .checklist-text strong { font-size: .86rem; }
.checklist-item.is-compact .checklist-text small { display: none; }
/* A barra de progresso inteira abre a lista completa. */
.execution-progress { position: relative; }
.progress-open { position: absolute; inset: 0; width: 100%; padding: 0; border: 0; border-radius: 12px; background: transparent; color: transparent; font-size: 0; cursor: pointer; }
.progress-open:hover { background: rgba(33,62,65,.05); }
.progress-open:focus-visible { outline: 3px solid var(--green-2); outline-offset: 2px; }
.execution-progress-foot { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-top: 5px; }
.execution-progress-foot small { margin-top: 0; }
.progress-link-label { flex: 0 0 auto; color: var(--green-2); font-size: .72rem; font-weight: 750; }
.execution-progress:hover .progress-link-label { text-decoration: underline; }

.plan-dialog { width: min(680px, calc(100vw - 32px)); max-height: min(78vh, 760px); padding: 0; border: 1px solid var(--line); border-radius: 20px; background: #fff; color: var(--ink); box-shadow: 0 30px 80px rgba(20,42,39,.28); overflow: hidden; }
.plan-dialog::backdrop { background: rgba(16,30,28,.55); }
.plan-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 22px 24px 18px; border-bottom: 1px solid var(--line); }
.plan-dialog-head h2 { margin: 0 0 6px; font-size: 1.3rem; }
.plan-dialog-head p { margin: 0; max-width: 56ch; color: var(--muted); font-size: .86rem; }
.plan-dialog-close { flex: 0 0 auto; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--ink); font-size: 1.3rem; line-height: 1; cursor: pointer; }
.plan-dialog-close:hover { background: #f4f8f5; }
.plan-dialog-body { max-height: calc(78vh - 120px); padding: 20px 24px 24px; overflow-y: auto; }

.plan-summary { margin-bottom: 18px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.plan-summary > summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; padding: 15px 18px; color: var(--green); font-weight: 700; cursor: pointer; }
.plan-summary > summary b { color: var(--muted); font-size: .82rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.plan-summary[open] > summary { border-bottom: 1px solid var(--line); }
.plan-summary-body { padding: 16px 18px 18px; }
.plan-summary-note { margin: 0 0 16px; max-width: 68ch; color: var(--muted); font-size: .85rem; }
.plan-summary-group + .plan-summary-group { margin-top: 18px; padding-top: 16px; border-top: 1px dashed var(--line); }
.plan-summary-group h4 { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 10px; font-size: 1rem; }
.plan-summary-group.is-locked { opacity: .72; }
.plan-summary-list { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.plan-summary-list a { display: grid; grid-template-columns: 20px 1fr; gap: 11px; align-items: start; padding: 9px 10px; border-radius: 10px; text-decoration: none; transition: background .15s ease; }
.plan-summary-list a:hover { background: #f4f8f5; }
.plan-summary-check { width: 16px; height: 16px; margin-top: 3px; border: 2px solid #bcc9c4; border-radius: 5px; }
.plan-summary-list li.is-done .plan-summary-check { border-color: var(--green); background: var(--green); box-shadow: inset 0 0 0 3px var(--green), inset 0 0 0 5px var(--mint); }
.plan-summary-text strong { display: block; font-size: .92rem; font-weight: 600; }
.plan-summary-text small { display: block; margin-top: 2px; color: var(--muted); font-size: .78rem; }
.plan-summary-list li.is-done .plan-summary-text strong { color: #4b5a56; text-decoration: line-through; text-decoration-thickness: from-font; text-decoration-color: rgba(75,90,86,.6); }
.plan-path { margin-bottom: 22px; padding: 18px 20px; border: 1px solid var(--line); border-radius: 16px; background: #f7faf8; }
.plan-path-label { display: block; margin-bottom: 12px; color: var(--green-2); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.plan-path-track { display: flex; align-items: stretch; gap: 8px; margin: 0; padding: 0; list-style: none; }
.plan-path-track li { position: relative; flex: 1 1 160px; }
.plan-path-track button { width: 100%; height: 100%; display: block; padding: 12px 14px; border: 1px solid #e0e7e3; border-radius: 12px; background: #fff; color: var(--ink); text-align: left; cursor: pointer; transition: border-color .18s ease, background .18s ease, box-shadow .18s ease; }
.plan-path-track button:hover { border-color: var(--green-2); }
.plan-path-track button:focus-visible { outline: 3px solid var(--green-2); outline-offset: 2px; }
.plan-path-track strong { display: block; font-size: .95rem; }
.plan-path-track small { display: block; margin-top: 2px; color: var(--muted); font-size: .78rem; }
.plan-path-track li.is-open button { border-color: var(--green); }
.plan-path-track li.is-won button { border-color: #7fc69f; background: #f0fbf4; }
.plan-path-track li.is-won small { color: #23613c; font-weight: 700; }
.plan-path-track li.is-locked button { background: #f3f5f3; }
.plan-path-track li.is-selected button { border-color: var(--green); background: var(--green); color: #fff; box-shadow: 0 7px 18px rgba(33,62,65,.16); }
.plan-path-track li.is-selected small { color: var(--mint); }
.plan-path-note { margin: 12px 0 0; color: var(--muted); font-size: .88rem; }
.plan-concluded { margin-bottom: 22px; padding: 20px 22px; border: 1px solid #bce9d0; border-radius: 16px; background: #f0fbf4; }
.plan-concluded strong { display: block; margin-bottom: 6px; color: #1f4038; font-family: var(--font-display); font-size: 1.05rem; }
.plan-concluded p { margin: 0 0 12px; color: #35564c; }
.plan-block-title { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.plan-badge { padding: 4px 9px; border-radius: 999px; background: #eef1ef; color: #53605d; font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.plan-badge-open { background: var(--mint-soft); color: var(--green); }
.plan-badge-won { background: #dff4e7; color: #23613c; }
.plan-badge-locked { background: #eef1ef; color: #6b7874; }
.plan-lock-note { margin: 10px 0 0; color: var(--muted); font-size: .88rem; }
.plan-block.is-locked { background: #f6f8f6; border-style: dashed; }
.plan-block.is-locked .checklist-item { cursor: default; opacity: .78; }
.plan-block.is-locked .cycle-pieces, .plan-block.is-locked .cycle-params { opacity: .82; }
.plan-block.is-won { border-left-color: #4f9d78; }
.plan-block { margin-top: 18px; padding: 24px; border: 1px solid var(--line); border-radius: 18px; background: #fcfdfc; scroll-margin-top: 100px; }
.plan-block.is-cycle { border-left: 4px solid var(--green); }
.plan-block-head h3 { margin-bottom: 6px; font-size: 1.28rem; }
.plan-block-head p { margin: 0; color: var(--muted); }
.plan-block-head p b { color: var(--ink); }
.cycle-params { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin: 18px 0; }
.cycle-params > div { padding: 13px 15px; border: 1px solid #e4e9e6; border-radius: 12px; background: #fff; }
.cycle-params span { display: block; color: var(--green-2); font-size: .7rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.cycle-params strong { display: block; margin-top: 4px; font-weight: 600; }
/* As peças do ciclo são o que efetivamente vai ao ar: ganham bloco próprio,
   numeração e link para o texto completo, em vez de virar uma linha de texto. */
.cycle-pieces { margin: 20px 0; padding: 18px; border: 1px solid #d7e4dd; border-radius: 18px; background: #f7faf8; }
.cycle-pieces-head { margin-bottom: 14px; }
.cycle-pieces-label { display: block; color: var(--green); font-size: .72rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.cycle-pieces-hint { margin: 6px 0 0; max-width: 70ch; color: var(--muted); font-size: .88rem; }
.cycle-pieces-note { margin: 8px 0 0; color: var(--green-2); font-size: .88rem; font-weight: 600; }
.cycle-pieces-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 12px; }
.cycle-piece { display: flex; align-items: flex-start; gap: 14px; min-width: 0; padding: 14px; border: 1px solid #e0e7e3; border-radius: 14px; background: #fff; text-decoration: none; transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.cycle-piece:hover { border-color: var(--green-2); transform: translateY(-1px); box-shadow: 0 10px 24px rgba(20,42,39,.08); }
.cycle-piece-thumb { position: relative; flex: 0 0 auto; width: 58px; height: 72px; }
.cycle-piece-thumb img, .cycle-piece-placeholder { width: 100%; height: 100%; border-radius: 10px; object-fit: cover; }
.cycle-piece-placeholder { display: grid; place-items: center; background: #e7eeea; color: var(--green-2); font: 800 1.05rem var(--font-display); }
.cycle-piece-number { position: absolute; right: -7px; bottom: -7px; display: grid; place-items: center; width: 24px; height: 24px; border: 2px solid #fff; border-radius: 50%; background: var(--green); color: var(--mint); font-size: .72rem; font-weight: 800; }
.cycle-piece-body { min-width: 0; }
.cycle-piece-kind { display: block; color: var(--green-2); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.cycle-piece strong { display: block; margin-top: 4px; font-family: var(--font-display); font-size: .98rem; letter-spacing: -.015em; line-height: 1.25; }
.cycle-piece-angle { display: block; margin-top: 4px; color: var(--muted); font-size: .8rem; }
.cycle-piece-link { display: inline-block; margin-top: 8px; color: var(--green-2); font-size: .8rem; font-style: normal; font-weight: 700; }
.cycle-piece-link::after { content: " →"; }
.cycle-piece:hover .cycle-piece-link { text-decoration: underline; }
.decision-rule { margin: 18px 0; padding: 16px 18px; border: 1px solid #bce9d0; border-radius: 14px; background: var(--mint-soft); }
.decision-rule span { display: block; margin-bottom: 6px; color: var(--green); font-size: .7rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.decision-rule p { margin: 0; color: #1f4038; }
.checklist-group { margin-top: 18px; padding: 4px 18px 14px; border-radius: 16px; background: #f5f7f5; }
.checklist-hint { margin: 14px 0 0; color: var(--muted); font-size: .84rem; }
.checklist-item { position: relative; display: grid; grid-template-columns: 24px 1fr; gap: 12px; align-items: start; padding: 14px 0; border-top: 1px solid #dfe6e2; cursor: pointer; }
.checklist-item:first-of-type { border-top: 0; }
.checklist-item input { position: absolute; opacity: 0; pointer-events: none; }
.checkmark { width: 22px; height: 22px; margin-top: 1px; border: 2px solid #aebbb6; border-radius: 7px; background: #fff; }
.checklist-item input:checked + .checkmark { background: var(--green); border-color: var(--green); box-shadow: inset 0 0 0 5px var(--green), inset 0 0 0 7px var(--mint); }
.checklist-item input:focus-visible + .checkmark { outline: 3px solid var(--green-2); outline-offset: 2px; }
.checklist-text strong, .checklist-text small { display: block; }
.checklist-text small { margin-top: 3px; color: var(--muted); font-weight: 400; }
.item-kind { display: inline-block; margin-top: 6px; padding: 2px 8px; border-radius: 999px; background: #e6ebe8; color: #5b6a66; font-size: .68rem; font-style: normal; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.checklist-item.is-done strong { color: #4b5a56; text-decoration: line-through; text-decoration-thickness: from-font; text-decoration-color: rgba(75,90,86,.6); }
.checklist-item.is-done .checkmark { border-color: var(--green); }
.cycle-log { display: grid; gap: 12px; margin-top: 18px; padding: 20px; border: 1px dashed #b9cac3; border-radius: 16px; background: #fff; }
.cycle-log h4 { margin: 0; font-size: 1.02rem; }
.cycle-log-hint { margin: 0; color: var(--muted); font-size: .86rem; }
.cycle-log-grid { display: grid; grid-template-columns: 160px minmax(0,1fr); gap: 12px; }
.cycle-log-reminder { padding: 14px 16px; border-left: 3px solid var(--green-2); border-radius: 0 12px 12px 0; background: #f2f6f3; }
.cycle-log-reminder p { margin: 6px 0 0; color: #3d4f4a; font-size: .9rem; }
.cycle-log-reminder p b { color: var(--ink); }
.cycle-log-reminder .cycle-log-question { margin-top: 10px; padding-top: 10px; border-top: 1px solid #d8e3dd; color: var(--ink); font-weight: 700; }
.cycle-log-number input { max-width: 160px; }
.cycle-log-number small { color: var(--muted); font-size: .82rem; font-weight: 400; }
.decision-choice { display: grid; gap: 8px; margin: 4px 0 0; padding: 0; border: 0; }
.decision-choice legend { padding: 0 0 8px; color: #33423f; font-size: .86rem; font-weight: 700; }
.decision-option { position: relative; display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; padding: 13px 15px; border: 1px solid #dfe6e2; border-radius: 13px; background: #fff; cursor: pointer; transition: border-color .16s ease, background .16s ease; }
.decision-option:hover { border-color: #b9cfc4; }
.decision-option input { position: absolute; opacity: 0; pointer-events: none; }
.decision-mark { width: 20px; height: 20px; margin-top: 2px; border: 2px solid #aebbb6; border-radius: 50%; background: #fff; }
.decision-option input:checked ~ .decision-mark { border-color: var(--green); box-shadow: inset 0 0 0 4px var(--green); }
.decision-option:has(input:checked) { border-color: var(--green); background: #f4fbf7; }
.decision-option input:focus-visible ~ .decision-mark { outline: 3px solid var(--green-2); outline-offset: 2px; }
.decision-text strong { display: block; font-size: .95rem; }
.decision-text small { display: block; margin-top: 3px; color: var(--muted); font-size: .82rem; }
.cycle-log-actions { display: flex; align-items: center; gap: 12px; }

/* Diagnóstico do perfil, posts da grade e ativação */
/* Diagnóstico do perfil: abre o painel e mostra o retrato de antes ------- */
.diagnosis-hero { scroll-margin-top: 95px; position: relative; overflow: hidden; margin-top: 26px; padding: clamp(24px, 3.4vw, 38px); border-radius: 26px; border: 1px solid #e6ded0; background: linear-gradient(135deg, #fffdf7 0%, #fdf6e9 100%); box-shadow: 0 18px 40px rgba(76, 60, 24, .09); }
.diagnosis-hero::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 6px; background: linear-gradient(180deg, var(--green) 0%, #d9a441 100%); }
.diagnosis-hero .eyebrow { color: #a37518; }
.diagnosis-hero-head h2 { margin: 10px 0 8px; font-size: clamp(1.4rem, 2.4vw, 2rem); line-height: 1.15; }
.diagnosis-hero-lead { max-width: 62ch; margin: 0; color: var(--ink-soft); }
.diagnosis-hero-body { margin-top: 24px; display: grid; gap: 24px; }
.diagnosis-hero-body.has-image { grid-template-columns: minmax(min(280px, 100%), 340px) 1fr; align-items: start; }
.diagnosis-hero-text { display: grid; gap: 16px; }
.diagnosis-shot { margin: 0; }
.diagnosis-shot-zoom { position: relative; display: block; width: 100%; padding: 0; border: 1px solid #e6ded0; border-radius: 18px; overflow: hidden; background: #fff; cursor: zoom-in; box-shadow: 0 10px 24px rgba(76, 60, 24, .12); }
.diagnosis-shot-zoom img { display: block; width: 100%; height: auto; max-height: 460px; object-fit: contain; object-position: top; }
.diagnosis-shot-hint { position: absolute; right: 10px; bottom: 10px; padding: 5px 12px; border-radius: 999px; background: rgba(15, 42, 32, .82); color: #fff; font-size: .74rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.diagnosis-shot-zoom:hover .diagnosis-shot-hint { background: var(--green); }
.diagnosis-shot figcaption { margin-top: 10px; color: var(--ink-soft); font-size: .88rem; line-height: 1.45; }
.diagnosis-recall { margin-bottom: 20px; }
.image-dialog { width: min(94vw, 900px); padding: 0; border: none; border-radius: 20px; background: #10231c; }
.image-dialog::backdrop { background: rgba(8, 20, 16, .82); }
.image-dialog img { display: block; width: 100%; height: auto; border-radius: 0 0 20px 20px; }
.image-dialog form { display: flex; justify-content: flex-end; padding: 8px; }
.image-dialog-close { width: 36px; height: 36px; border: none; border-radius: 50%; background: rgba(255,255,255,.14); color: #fff; font-size: 1.3rem; line-height: 1; cursor: pointer; }
.image-dialog-close:hover { background: rgba(255,255,255,.26); }

.profile-diagnosis { margin-bottom: 26px; padding: 22px 24px; border: 1px solid #e0e7e3; border-left: 4px solid var(--green-2); border-radius: 16px; background: #f7faf8; }
.diagnosis-current { margin-top: 8px; }
.diagnosis-current p { margin-bottom: 0; }
.diagnosis-gaps { margin-top: 16px; }
.diagnosis-gaps ul { margin: 6px 0 0; padding-left: 20px; display: grid; gap: 5px; }
.diagnosis-gaps li { color: #6a5316; }
.diagnosis-after { margin-top: 16px; padding-top: 14px; border-top: 1px dashed #cfdcd5; }
.diagnosis-after p { margin-bottom: 0; font-weight: 600; }

.grid-posts { display: grid; gap: 14px; }
.grid-post { padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.grid-post > header { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 10px; }
.grid-post-order { display: grid; place-items: center; flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; background: var(--green); color: var(--mint); font-size: .82rem; font-weight: 800; }
.grid-post-role { display: block; color: var(--green-2); font-size: .68rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.grid-post h4 { margin: 3px 0 0; font-size: 1.12rem; }
.grid-post-goal { margin: 0 0 12px; color: var(--muted); font-size: .9rem; }

.activation-list { display: grid; gap: 12px; }
.activation-card { padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.activation-card h4 { margin-bottom: 8px; font-size: 1.08rem; }
.activation-who { margin: 0 0 12px; color: var(--muted); font-size: .9rem; }
.activation-message { padding: 15px 16px; border-radius: 13px; background: #f6f8f6; }
.activation-message p { margin: 0 0 10px; }
.activation-note { margin: 12px 0 0; color: var(--muted); font-size: .84rem; }
.story-week { display: grid; gap: 9px; margin-top: 14px; }
.story-day { overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: #f8faf8; }
.story-day summary { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; padding: 13px 15px; cursor: pointer; list-style: none; }
.story-day summary::-webkit-details-marker { display: none; }
.story-day summary span { color: var(--accent); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.story-day summary strong { font-size: .94rem; }
.story-day summary::after { content: '+'; color: var(--muted); font-size: 1.15rem; line-height: 1; }
.story-day[open] summary::after { content: '−'; }
.story-day[open] summary { border-bottom: 1px solid var(--line); background: #fff; }
.story-day-body { padding: 15px; }
.story-goal, .story-cta { margin: 0 0 12px; color: var(--text); font-size: .9rem; }
.story-frames { display: grid; gap: 10px; margin-bottom: 12px; }
.story-frame { overflow: hidden; border: 1px solid #dce7e1; border-radius: 12px; background: #fff; }
.story-frame > strong { display: block; padding: 9px 13px; background: var(--green); color: #fff; font-size: .76rem; letter-spacing: .06em; text-transform: uppercase; }
.story-frame-copy, .story-frame-visual { padding: 12px 14px; }
.story-frame-copy { color: var(--text); }
.story-frame-visual { border-top: 1px solid #dce7e1; background: #eef5f1; color: #294b42; }
.story-frame-copy p, .story-frame-visual p { margin: 0; }
.story-visual { margin-bottom: 12px; padding: 14px 15px; border: 1px solid #dce7e1; border-radius: 11px; background: #eef5f1; color: #294b42; }
.story-visual p { margin: 0; }
.story-message { margin-bottom: 12px; padding: 14px 15px; border-radius: 11px; background: #fff; }
.story-message p { margin: 0; }

/* Aceleração */
.acceleration-section { border-color: #d7e4dd; }
.acceleration-section.is-enabled { border-color: #bce9d0; }
.acceleration-split { margin-bottom: 20px; padding: 18px 20px; border-radius: 14px; background: #f2f6f3; }
.acceleration-split p { margin: 6px 0 0; color: #3d4f4a; }
.acceleration-switch { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; margin: 20px 0 24px; padding: 18px 20px; border: 1px solid #bce9d0; border-radius: 16px; background: var(--mint-soft); }
.acceleration-switch > div { flex: 1 1 320px; }
.acceleration-switch strong { display: block; color: var(--green); }
.acceleration-switch p { margin: 4px 0 0; max-width: 62ch; color: #35564c; font-size: .9rem; }
.acceleration-help { color: var(--green-2); font-size: .86rem; font-weight: 700; }
.plan-badge-acceleration { background: #eef1ef; color: #6b7874; }
.plan-block.is-acceleration { background: #fafbfa; border-style: dashed; }
.plan-path-track li.is-acceleration button { background: #f3f5f3; opacity: .8; }

/* Ajuda */
.privacy-notice { padding: 16px 18px; border: 1px solid #f0d99a; border-radius: 13px; background: var(--amber-soft); }
.privacy-notice strong { color: var(--amber); }
.privacy-notice p { margin: 3px 0 0; color: #765d20; }
.refinement-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.refinement-card { padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: #fcfdfc; }
.refinement-card > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.refinement-card > header span { font-weight: 800; }
.refinement-form { display: grid; gap: 12px; }
.refinement-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.refinement-answer { margin-bottom: 12px; padding: 14px 16px; border-radius: 12px; background: #f0fbf4; }
.refinement-answer p:last-child { margin-bottom: 0; }
.refinement-audio { margin-bottom: 14px; }
.assistant-dialog { position: fixed; z-index: 70; inset: auto 20px 90px auto; width: min(420px, calc(100% - 40px)); height: min(650px, calc(100dvh - 122px)); max-height: calc(100dvh - 122px); margin: 0; padding: 0; border: 1px solid var(--line); border-radius: 20px; background: #fff; color: var(--ink); box-shadow: 0 24px 70px rgba(20,42,39,.3); overflow: hidden; }
.assistant-dialog[open] { display: grid; grid-template-rows: auto minmax(0,1fr) auto; }
.assistant-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 18px 20px 16px; border-bottom: 1px solid var(--line); background: #fbfdfb; }
.assistant-dialog-head .eyebrow { color: var(--green-2); font-size: .65rem; }
.assistant-dialog-head h2 { margin: 4px 0 3px; font-size: 1.2rem; }
.assistant-dialog-head p { margin: 0; color: var(--muted); font-size: .78rem; }
.assistant-head-actions { display: flex; align-items: center; gap: 7px; }
.assistant-history-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 34px; padding: 0 10px; border: 1px solid var(--line); border-radius: 18px; background: #fff; color: var(--green); font-size: .75rem; font-weight: 750; cursor: pointer; }
.assistant-history-toggle svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.assistant-history-toggle:hover, .assistant-dialog.is-history .assistant-history-toggle { background: var(--green); color: #fff; }
.assistant-dialog-close { flex: 0 0 auto; display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--ink); font-size: 1.2rem; line-height: 1; cursor: pointer; }
.assistant-dialog-close:hover { background: #f1f6f3; }
.assistant-history { grid-row: 2 / 4; min-height: 0; background: #f3f7f4; overflow-y: auto; }
.assistant-dialog.is-history .assistant-history:not([hidden]) { display: flex; flex-direction: column; }
.assistant-dialog.is-history .assistant-thread, .assistant-dialog.is-history .assistant-composer { display: none; }
.assistant-history > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px 12px; }
.assistant-history > header strong, .assistant-history > header span { display: block; }
.assistant-history > header span { margin-top: 2px; color: var(--muted); font-size: .76rem; }
.assistant-history > header button { padding: 6px 9px; border: 0; background: transparent; color: var(--green-2); font-size: .76rem; font-weight: 750; cursor: pointer; }
.assistant-history-list { display: grid; gap: 9px; padding: 0 14px 18px; }
.assistant-history-item { display: grid; gap: 5px; width: 100%; padding: 13px 14px; border: 1px solid var(--line); border-radius: 13px; background: #fff; color: var(--ink); text-align: left; cursor: pointer; }
.assistant-history-item:hover { border-color: #98b9ae; box-shadow: 0 5px 16px rgba(20,42,39,.07); }
.assistant-history-item strong { overflow: hidden; font-size: .86rem; text-overflow: ellipsis; white-space: nowrap; }
.assistant-history-item p { display: -webkit-box; margin: 0; overflow: hidden; color: var(--muted); font-size: .75rem; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.assistant-history-item span { color: #71807b; font-size: .68rem; }
.assistant-history-state { margin: 18px 4px; color: var(--muted); font-size: .82rem; text-align: center; }
.assistant-thread { display: flex; flex-direction: column; gap: 12px; min-height: 0; padding: 18px 18px 22px; overflow-y: auto; background: #f3f7f4; overscroll-behavior: contain; }
.assistant-message { width: fit-content; max-width: 88%; padding: 12px 14px; border-radius: 15px 15px 15px 4px; background: #fff; box-shadow: 0 3px 12px rgba(20,42,39,.06); }
.assistant-message.is-user { align-self: flex-end; border-radius: 15px 15px 4px 15px; background: var(--green); color: #fff; }
.assistant-message.is-error { border: 1px solid #efbcc0; background: #fff2f3; color: #7f2028; }
.assistant-message.is-loading p { color: var(--muted); animation: assistantPulse 1.1s ease-in-out infinite; }
.assistant-message > span { display: block; margin-bottom: 4px; color: var(--green-2); font-size: .66rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.assistant-message.is-user > span { color: var(--mint); }
.assistant-message p { margin: 0; white-space: pre-wrap; }
.assistant-composer { display: grid; gap: 10px; padding: 14px 16px 16px; border-top: 1px solid var(--line); background: #fff; }
.assistant-composer label { font-size: .78rem; }
.assistant-request textarea { min-height: 72px; max-height: 150px; margin-top: 0; padding: 11px 12px; resize: vertical; }
.ai-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.assistant-privacy { color: var(--muted); font-size: .72rem; }
.ai-closed { padding: 22px 24px; border: 1px solid var(--line); border-radius: 16px; background: #f6f8f6; }
.ai-closed strong { display: block; margin-bottom: 6px; }
.ai-closed p { color: var(--muted); }

@keyframes assistantPulse {
  0%, 100% { opacity: .45; }
  50% { opacity: 1; }
}

/* Próximo passo */
.next-step-card { margin-top: 26px; padding: clamp(26px, 4vw, 46px); border-radius: 24px; background: var(--green); color: #fff; }
.next-step-card .eyebrow { color: var(--mint); }
.next-step-card h3 { max-width: 640px; margin: 10px 0 14px; font-size: clamp(1.7rem,3vw,2.6rem); }
.next-step-card p { max-width: 640px; color: #dce8e3; }
.next-fit { color: #bcd4cc; font-size: .95rem; }
.next-fit strong { color: var(--mint); }
.client-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 20px; padding: 28px 4px 0; color: var(--muted); font-size: .78rem; }

/* Ações flutuantes */
.floating-actions { position: fixed; z-index: 45; right: 20px; bottom: 20px; display: flex; align-items: center; gap: 10px; }
.floating-next { position: relative; display: flex; align-items: center; max-width: 300px; padding: 11px 17px; border-radius: 14px; background: var(--green); color: #fff; text-decoration: none; box-shadow: 0 14px 34px rgba(20,42,39,.22); transition: transform .32s cubic-bezier(.2,.8,.3,1), opacity .3s ease, box-shadow .25s ease; }
.floating-copy { display: flex; flex-direction: column; min-width: 0; }
.floating-copy > span { color: var(--mint); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.floating-next strong { overflow: hidden; font-size: .88rem; text-overflow: ellipsis; white-space: nowrap; }
.floating-next:hover { transform: translateY(-2px); box-shadow: 0 20px 44px rgba(20,42,39,.28); }
.floating-next:active { transform: translateY(0) scale(.985); }
.floating-actions.is-tucked .floating-next { opacity: 0; transform: translateY(16px) scale(.94); pointer-events: none; }
.floating-next::before { content: ""; position: absolute; inset: 0; border-radius: inherit; border: 2px solid var(--mint); opacity: 0; pointer-events: none; }
.floating-next.is-updated { animation: nextSettle .5s cubic-bezier(.2,.9,.3,1); }
.floating-next.is-updated::before { animation: nextHalo .85s ease-out; }
.floating-next.is-nudging { animation: nextNudge 1.5s ease-in-out 2; }
.floating-next.is-updated .floating-copy { animation: nextSwap .42s ease-out; }

@keyframes nextHalo {
  0% { opacity: .85; transform: scale(1); }
  100% { opacity: 0; transform: scale(1.22); }
}
@keyframes nextSettle {
  0% { transform: scale(1); }
  38% { transform: scale(1.045); }
  100% { transform: scale(1); }
}
@keyframes nextSwap {
  0% { opacity: 0; transform: translateY(7px); }
  100% { opacity: 1; transform: translateY(0); }
}
@keyframes nextNudge {
  0%, 62%, 100% { transform: translateY(0); }
  72% { transform: translateY(-5px); }
  86% { transform: translateY(-2px); }
}
.floating-assistant { display: flex; align-items: center; justify-content: center; flex: 0 0 46px; width: 46px; height: 46px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--green); line-height: 0; cursor: pointer; box-shadow: 0 10px 28px rgba(20,42,39,.13); transition: transform .2s ease, background .2s ease, color .2s ease; }
.floating-assistant svg { display: block; width: 20px; height: 20px; margin: 0; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transform: translateY(-.5px); }
.floating-assistant:hover, .floating-assistant[aria-expanded="true"] { transform: translateY(-2px); background: var(--green); color: #fff; }
.floating-assistant:active { transform: translateY(0) scale(.96); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .floating-actions.is-tucked .floating-next { opacity: 0; transform: none; }
}

@media (max-width: 980px) {
  .admin-columns { grid-template-columns: 1fr; }
  .admin-secondary { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .client-layout { grid-template-columns: 1fr; }
  .topbar-progress { display: none; }
  .client-sidebar { position: static; width: 100%; height: auto; padding: 16px 20px 18px; border: 0; border-bottom: 1px solid var(--line); }
  .client-profile { padding-bottom: 14px; }
  .nav-menu { margin-top: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
  .nav-menu > summary { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; color: var(--green); font-size: .9rem; font-weight: 700; cursor: pointer; list-style: none; }
  .nav-menu > summary::-webkit-details-marker { display: none; }
  .nav-menu > summary::after { content: "▾"; color: var(--green-2); }
  .nav-menu[open] > summary::after { content: "▴"; }
  .client-nav { padding: 0 10px 12px; gap: 10px; }
  .client-nav-section + .client-nav-section { padding-top: 9px; }
  .client-nav a { padding: 10px 12px; border-radius: 10px; font-size: .88rem; }
  .sidebar-progress { display: block; margin-top: 14px; }
  .client-main { padding-top: 22px; }
  .refinement-list { grid-template-columns: 1fr; }
  .process-map { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .diagnosis-hero-body.has-image { grid-template-columns: 1fr; }
  /* No celular o cabeçalho fechado fica no essencial: título e inventário. */
  .section-shell:not([open]) .section-heading p { display: none; }
  .section-shell:not([open]) .section-facts { margin-top: 10px; }
  summary.section-title { gap: 14px; }
  .diagnosis-shot-zoom { max-width: 420px; margin-inline: auto; }
  /* No celular o print vira chamada: quem quiser ler as marcações amplia. */
  .diagnosis-shot-zoom img { max-height: 300px; }
  .admin-header-inner, .admin-main { width: min(100% - 24px,1180px); }
  .admin-context { display: none; }
  .admin-header-inner form { margin-left: auto; }
  .admin-title { align-items: flex-start; flex-direction: column; }
  .admin-title .button { width: 100%; }
  .panel-table-head { display: none; }
  .panel-row { grid-template-columns: 1fr auto; }
  .panel-row > span:nth-child(3), .panel-row > span:nth-child(4) { display: none; }
  .form-grid, .strategy-grid, .field-grid, .creative-grid, .plan-meta, .cycle-params, .cycle-log-grid, .admin-secondary, .bio-options, .contact-script-flow, .contact-script-support { grid-template-columns: 1fr; }
  .cycle-log-number input { max-width: none; }
  .contact-script { padding: 18px; }
  .contact-script-head { align-items: stretch; flex-direction: column; }
  .plan-path { padding: 15px; }
  .plan-dialog { width: 100%; max-width: none; max-height: 88vh; margin: auto 0 0; border-radius: 20px 20px 0 0; }
  .plan-dialog-head { padding: 18px 18px 14px; }
  .plan-dialog-body { max-height: calc(88vh - 140px); padding: 16px 18px 22px; }
  .plan-path-track { overflow-x: auto; padding: 2px 2px 8px; scroll-snap-type: x proximity; }
  .plan-path-track li { flex: 0 0 min(76vw,240px); scroll-snap-align: start; }
  .share-card { align-items: stretch; flex-direction: column; }
  .client-topbar-inner { padding: 10px 16px; }
  .update-chip { display: none; }
  .client-main { padding: 16px 12px 100px; }
  .panel-hero { display: flex; flex-direction: column; padding: 24px 18px; border-radius: 22px; }
  .panel-hero h1 { font-size: clamp(1.7rem, 7.2vw, 2.4rem); margin: 8px 0 16px; }
  .hero-identity { order: 1; margin-bottom: 14px; }
  .panel-hero > .eyebrow { order: 2; }
  .panel-hero h1 { order: 3; }
  .hero-summary { order: 4; margin: 0 0 18px; font-size: .98rem; }
  .hero-audio { order: 5; margin: 0 0 16px; }
  .audio-shell { gap: 10px; padding: 10px 12px; }
  .audio-toggle { width: 42px; height: 42px; }
  .audio-wave { height: 38px; gap: 2px; }
  .audio-time { font-size: .76rem; }
  .hero-meta { order: 7; }
  .stage-banner { margin-top: 38px; padding: 23px 19px; border-radius: 17px; }
  .stage-action { margin: 24px 0; padding: 22px 18px; border-radius: 20px; }
  .stage-action .checklist-group { padding: 4px 14px 6px; }
  .content-section { padding: 22px 17px; border-radius: 18px; }
  .section-title { flex-direction: column; gap: 14px; }
  summary.section-title { flex-direction: row; align-items: center; gap: 14px; }
  .creative-actions .button { flex: 1 1 auto; }
  .floating-actions { right: 12px; bottom: 12px; }
  .floating-next { max-width: 210px; gap: 10px; }
  .assistant-dialog { inset: auto 12px 80px auto; width: calc(100% - 24px); height: min(620px, calc(100dvh - 104px)); max-height: calc(100dvh - 104px); border-radius: 18px; }
  .assistant-dialog-head { padding: 16px 17px 14px; }
  .assistant-history-toggle { width: 34px; padding: 0; }
  .assistant-history-toggle span { display: none; }
  .assistant-thread { padding: 15px; }
  .assistant-composer { padding: 12px 14px 14px; }
  .client-footer { flex-direction: column; }
  .auth-card { padding: 26px 21px; }
}

/* Formulário privado do cliente */
.intake-rule { margin: 0 0 24px; padding: 18px 20px; border-left: 4px solid var(--green-2); border-radius: 0 15px 15px 0; background: #eaf2ee; }
.intake-rule strong { display: block; margin-bottom: 4px; font-family: var(--font-display); }
.intake-rule p { margin: 0; color: var(--muted); }
.intake-config-form { display: grid; gap: 24px; }
.intake-group { padding: 26px; }
.intake-admin-fields { display: grid; gap: 12px; }
.intake-admin-field { padding: 17px; border: 1px solid var(--line); border-radius: 15px; background: #fafcfb; }
.intake-admin-field.has-known-value { border-color: #b9ddc8; background: #f5fbf7; }
.intake-field-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 12px; }
.intake-field-heading > div { min-width: 0; }
.intake-field-heading > div > label { display: block; color: var(--ink); font: 750 .98rem var(--font-display); }
.intake-field-heading p { margin: 5px 0 0; color: var(--muted); font-size: .82rem; font-weight: 500; }
.required-mark { display: inline-flex; margin-left: 6px; padding: 2px 6px; border-radius: 999px; background: #edf0ee; color: var(--muted); font: 700 .64rem var(--font-body); vertical-align: 2px; }
.intake-ask-toggle, .intake-option, .intake-skip { display: flex; align-items: center; grid-template-columns: none; gap: 8px; cursor: pointer; }
.intake-ask-toggle { flex: 0 0 auto; padding: 7px 10px; border: 1px solid var(--line); border-radius: 999px; background: #fff; white-space: nowrap; }
.intake-ask-toggle:has(input:checked) { border-color: #9ed8b8; background: var(--mint-soft); color: var(--green); }
.intake-ask-toggle input, .intake-option input, .intake-skip input { width: 17px; height: 17px; margin: 0; padding: 0; accent-color: var(--green); }
.intake-visibility-note { display: block; margin-top: 8px; color: var(--muted); font-weight: 600; }
.has-known-value .intake-visibility-note { color: #31704b; }
.intake-options { display: flex; flex-wrap: wrap; gap: 8px; }
.intake-option { padding: 9px 11px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.intake-option:has(input:checked) { border-color: #9ed8b8; background: var(--mint-soft); }
.intake-inline-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.intake-skip { width: fit-content; margin-top: 9px; font-size: .82rem; }
.intake-file-present { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 10px; padding: 9px 11px; border-radius: 10px; background: #e7f5ed; color: #2d6846; font-size: .82rem; font-weight: 650; }
.intake-file-present a { font-weight: 800; }
.intake-admin-actions { position: sticky; z-index: 12; bottom: 14px; display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 17px; background: rgba(255,255,255,.95); box-shadow: 0 12px 35px rgba(20,42,39,.14); backdrop-filter: blur(12px); }
.intake-side-card .form-status { display: block; margin: 12px 0; }
.intake-responses { margin: 0 0 24px; }
.intake-json-export { margin: 18px 0 24px; padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: #f7faf8; }
.intake-json-export .section-heading { align-items: center; margin-bottom: 12px; }
.intake-json-export h3 { margin-bottom: 4px; font-size: 1rem; }
.intake-json-export p { margin: 0; color: var(--muted); font-size: .84rem; }
.intake-json-editor { min-height: 260px; max-height: 480px; margin: 0; font-size: 12px; }
.intake-response-group { margin: 24px 0 10px; font-size: 1rem; }
.intake-response-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.intake-response-grid article { padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: #fafcfb; }
.intake-response-grid article > div { display: flex; justify-content: space-between; gap: 10px; }
.intake-response-grid strong { font-family: var(--font-display); }
.intake-response-grid span { color: var(--muted); font-size: .7rem; font-weight: 700; }
.intake-response-grid p { margin: 9px 0 0; color: #394743; }
.intake-public-page { min-height: 100vh; background: radial-gradient(circle at 8% 0, rgba(145,230,184,.3), transparent 28%), var(--canvas); }
.intake-public-shell { width: min(760px, calc(100% - 32px)); margin: 0 auto; padding: 44px 0 80px; }
.intake-public-header { margin-bottom: 28px; }
.intake-public-header .brand { display: flex; width: fit-content; margin-bottom: 36px; }
.intake-public-header > .eyebrow { display: block; width: fit-content; }
.intake-public-header h1 { max-width: 610px; margin: 9px 0 12px; font-size: clamp(1.9rem,4.6vw,3rem); line-height: 1.08; }
.intake-public-header p { max-width: 620px; color: var(--muted); font-size: 1rem; }
.intake-public-form { display: grid; gap: 20px; }
.intake-public-group { overflow: hidden; border: 1px solid var(--line); border-radius: 22px; background: #fff; box-shadow: 0 10px 35px rgba(20,42,39,.05); }
.intake-public-group-title { padding: 22px 24px; border-bottom: 1px solid var(--line); background: #f7faf8; }
.intake-public-group-title h2 { margin-bottom: 6px; font-size: 1.12rem; }
.intake-public-group-title p { margin: 0; color: var(--muted); font-size: .9rem; }
.intake-public-field { padding: 22px 24px; border-bottom: 1px solid #edf0ee; }
.intake-public-field:last-child { border-bottom: 0; }
.intake-public-field > label { display: flex; width: fit-content; align-items: baseline; gap: 4px; margin-bottom: 9px; color: var(--ink); font: 750 .95rem var(--font-display); }
.intake-public-field > label span { display: inline; margin: 0; color: var(--red); }
.intake-public-field small { display: block; margin-top: 7px; color: var(--muted); }
.intake-prompt { margin: -2px 0 12px; color: var(--muted); font-size: .9rem; }
.intake-consent { padding: 16px 18px; border-radius: 14px; background: #edf3ef; }
.intake-consent strong { display: block; margin-bottom: 3px; }
.intake-consent p { margin: 0; color: var(--muted); font-size: .88rem; }
.intake-thanks { padding: 45px 30px; border: 1px solid var(--line); border-radius: 24px; background: #fff; text-align: center; box-shadow: var(--shadow); }
.intake-thanks > span { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 18px; border-radius: 50%; background: var(--mint-soft); color: var(--green); font-size: 1.5rem; font-weight: 800; }
.intake-thanks h2 { margin-bottom: 8px; }
.intake-thanks p { margin: 0; color: var(--muted); }
@media (max-width: 720px) {
  .intake-field-heading { flex-direction: column; gap: 10px; }
  .intake-ask-toggle { align-self: flex-start; }
  .intake-inline-fields, .intake-response-grid { grid-template-columns: 1fr; }
  .intake-admin-actions { justify-content: stretch; }
  .intake-admin-actions .button { width: 100%; }
  .intake-public-shell { padding-top: 24px; }
  .intake-public-header .brand { margin-bottom: 30px; }
  .intake-public-header h1 { font-size: clamp(1.75rem, 8.5vw, 2.35rem); }
  .intake-public-group-title, .intake-public-field { padding: 19px 17px; }
}

/* Diagnóstico gratuito do perfil */
.diagnostic-page { min-height: 100vh; background: radial-gradient(circle at 7% 0, rgba(145,230,184,.26), transparent 27%), #f2f5f1; }
.diagnostic-top { border-bottom: 1px solid rgba(33,62,65,.1); background: rgba(255,255,255,.8); backdrop-filter: blur(16px); }
.diagnostic-top > div { width: min(1160px, calc(100% - 40px)); min-height: 78px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.diagnostic-free-tag { padding: 7px 11px; border-radius: 999px; background: var(--mint-soft); color: var(--green); font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.diagnostic-shell { width: min(1160px, calc(100% - 40px)); margin: auto; padding: 62px 0 88px; }
.diagnostic-landing { display: grid; grid-template-columns: minmax(0,1fr) minmax(390px, .82fr); gap: clamp(38px,7vw,90px); align-items: center; }
.diagnostic-intro h1 { max-width: 13ch; margin: 13px 0 20px; font-size: clamp(2.6rem,5.4vw,5rem); line-height: .99; }
.diagnostic-intro > p { max-width: 58ch; margin-bottom: 34px; color: var(--muted); font-size: 1.08rem; }
.diagnostic-delivery { display: grid; grid-template-columns: 34px 1fr; gap: 17px 12px; max-width: 560px; }
.diagnostic-delivery > span { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--green); color: var(--mint); font-weight: 850; }
.diagnostic-delivery strong, .diagnostic-delivery small { display: block; }
.diagnostic-delivery small { margin-top: 3px; color: var(--muted); }
.diagnostic-form { display: grid; gap: 18px; padding: clamp(24px,3.6vw,38px); border: 1px solid var(--line); border-radius: 26px; background: rgba(255,255,255,.95); box-shadow: var(--shadow); }
.diagnostic-form h2 { margin: 7px 0 8px; font-size: 1.6rem; }
.diagnostic-form > div:first-child p { margin: 0; color: var(--muted); font-size: .92rem; }
.field-optional { margin-left: auto; color: var(--muted); font-size: .7rem; font-weight: 600; }
.diagnostic-form label { position: relative; }
.diagnostic-form label > .field-optional, .diagnostic-contact-form label > .field-optional { position: absolute; right: 0; top: 0; }
.diagnostic-upload { padding: 16px; border: 1px dashed #aebdb7; border-radius: 14px; background: #f8faf8; }
.diagnostic-upload input { padding: 8px; background: #fff; }
.diagnostic-upload small { color: var(--muted); font-weight: 500; }
.diagnostic-safety { padding: 14px 16px; border-left: 3px solid var(--green-2); border-radius: 0 12px 12px 0; background: #edf3ef; }
.diagnostic-safety strong { font-family: var(--font-display); }
.diagnostic-safety p { margin: 3px 0 0; color: var(--muted); font-size: .84rem; }
.diagnostic-consent { color: var(--muted); text-align: center; }
.diagnostic-result-shell, .diagnostic-offer-shell { width: min(1040px, calc(100% - 40px)); margin: auto; padding: 58px 0 96px; }
.diagnostic-result-hero { max-width: 820px; margin-bottom: 38px; }
.diagnostic-result-hero h1 { margin: 10px 0 14px; font-size: clamp(2.25rem,4.7vw,4.2rem); line-height: 1.02; }
.diagnostic-result-hero p { max-width: 65ch; margin: 0; color: var(--muted); font-size: 1.04rem; }
.diagnostic-result-grid { display: grid; gap: 16px; }
.diagnostic-result-card { display: grid; grid-template-columns: 50px minmax(0,1fr); gap: 20px; padding: clamp(24px,3.5vw,38px); border: 1px solid var(--line); border-radius: 22px; background: #fff; }
.diagnostic-result-card.is-bottleneck { border-left: 5px solid #d99a2b; }
.diagnostic-result-card.is-clear { border-left: 5px solid #4d9a70; }
.diagnostic-result-card.is-consequence { background: #f7f8f5; }
.result-number { color: #9aa6a2; font: 800 1rem var(--font-display); }
.diagnostic-result-card h2 { margin: 7px 0 12px; font-size: clamp(1.35rem,2.4vw,1.85rem); }
.diagnostic-result-card p { max-width: 72ch; margin-bottom: 0; color: #354440; }
.diagnostic-result-card > div > small { display: block; margin-top: 15px; color: var(--muted); }
.evidence-list { margin: 18px 0 0; padding-left: 20px; color: var(--muted); display: grid; gap: 7px; }
.result-evidence { margin-top: 20px; padding: 16px 18px; border-radius: 13px; background: #f5f7f5; }
.result-evidence strong { font-family: var(--font-display); font-size: .82rem; }
.result-evidence p { margin-top: 5px; color: var(--muted); }
.diagnostic-professional-note { margin: 18px 0; padding: 18px 20px; border: 1px solid #ecd693; border-radius: 15px; background: var(--amber-soft); }
.diagnostic-professional-note p { margin: 4px 0 0; color: #695526; }
.diagnostic-bio-card { margin-top: 28px; padding: clamp(25px,4vw,42px); border-radius: 24px; background: var(--green); color: #fff; box-shadow: 0 18px 50px rgba(20,42,39,.15); }
.diagnostic-bio-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.diagnostic-bio-heading .eyebrow { color: var(--mint); }
.diagnostic-bio-heading h2 { margin: 8px 0 0; font-size: clamp(1.5rem,2.6vw,2rem); }
.diagnostic-bio-text { margin: 26px 0 18px; padding: 22px; overflow-x: auto; border: 1px solid rgba(255,255,255,.16); border-radius: 15px; background: #172b2c; color: #f4fbf7; font: 600 .98rem/1.75 var(--font-body); white-space: pre-wrap; }
.diagnostic-bio-card > p { color: #d4e3dd; }
.diagnostic-confirm { margin-top: 20px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.15); }
.diagnostic-confirm ul { margin-bottom: 0; color: #d4e3dd; }
.diagnostic-question { margin-top: 24px; padding: clamp(24px,3vw,34px); border: 1px solid var(--line); border-radius: 22px; background: #fff; }
.diagnostic-question h2 { margin: 8px 0 20px; font-size: 1.45rem; }
.diagnostic-question form { display: grid; gap: 13px; }
.diagnostic-question form > small { color: var(--muted); }
.diagnostic-question .button { justify-self: start; }
.diagnostic-offer { display: grid; grid-template-columns: minmax(0,1fr) 290px; gap: 30px; align-items: center; margin-top: 46px; padding: clamp(28px,4vw,46px); border-radius: 26px; background: #e7efe9; }
.diagnostic-offer-copy h2 { max-width: 23ch; margin: 9px 0 14px; font-size: clamp(1.75rem,3.2vw,2.7rem); }
.diagnostic-offer-copy > p { max-width: 65ch; color: var(--muted); }
.diagnostic-offer-items { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 22px; }
.diagnostic-offer-items span { padding: 13px; border-radius: 12px; background: rgba(255,255,255,.62); color: var(--muted); font-size: .84rem; }
.diagnostic-offer-items b { display: block; margin-bottom: 3px; color: var(--ink); }
.diagnostic-price-card { padding: 25px; border-radius: 20px; background: var(--green); color: #fff; text-align: center; }
.diagnostic-price-card > span { color: #b9d0c7; font-size: .8rem; font-weight: 700; }
.diagnostic-price-card > strong { display: block; margin: 8px 0; font: 800 3.3rem var(--font-display); letter-spacing: -.06em; }
.diagnostic-price-card > strong small { font-size: 1rem; letter-spacing: 0; }
.diagnostic-price-card p { color: #d3e2dc; font-size: .87rem; }
.diagnostic-price-card > small { display: block; margin-top: 12px; color: #b9d0c7; }
.diagnostic-state { max-width: 700px; margin: 50px auto; padding: clamp(30px,5vw,58px); border: 1px solid var(--line); border-radius: 26px; background: #fff; text-align: center; box-shadow: var(--shadow); }
.diagnostic-state h1 { margin: 12px 0; font-size: clamp(2rem,4.5vw,3.5rem); }
.diagnostic-state p { max-width: 58ch; margin: 0 auto 22px; color: var(--muted); }
.diagnostic-state-icon { display: grid; place-items: center; width: 54px; height: 54px; margin: 0 auto 18px; border-radius: 50%; background: var(--mint-soft); color: var(--green); font-size: 1.5rem; font-weight: 900; }
.diagnostic-state-icon.is-error { background: #fff0f1; color: var(--red); }
.diagnostic-loader { display: block; width: 48px; height: 48px; margin: 0 auto 20px; border: 4px solid #dce5e0; border-top-color: var(--green); border-radius: 50%; animation: diagnostic-spin .8s linear infinite; }
@keyframes diagnostic-spin { to { transform: rotate(360deg); } }
.diagnostic-offer-shell > .back-link { margin-bottom: 24px; }
.diagnostic-checkout { display: grid; grid-template-columns: minmax(0,1fr) 390px; gap: clamp(34px,7vw,80px); align-items: start; padding: clamp(28px,5vw,55px); border: 1px solid var(--line); border-radius: 28px; background: #fff; box-shadow: var(--shadow); }
.diagnostic-checkout h1 { margin: 11px 0 17px; font-size: clamp(2.1rem,4.6vw,4rem); line-height: 1.02; }
.diagnostic-checkout > div > p, .diagnostic-checkout li { color: var(--muted); }
.diagnostic-checkout ul { display: grid; gap: 8px; padding-left: 20px; }
.diagnostic-checkout-price { display: flex; align-items: baseline; gap: 12px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.diagnostic-checkout-price span { color: var(--muted); }
.diagnostic-checkout-price strong { font: 800 2.4rem var(--font-display); }
.diagnostic-contact-form { display: grid; gap: 17px; padding: 26px; border-radius: 20px; background: #f3f6f3; }
.diagnostic-contact-form h2 { margin-bottom: 3px; font-size: 1.35rem; }
.diagnostic-contact-form > small { color: var(--muted); text-align: center; }
.diagnostic-payment-card { position: sticky; top: 24px; }
.diagnostic-payment-card > p { margin: 0 0 6px; color: var(--muted); }
.checkout-is-open { overflow: hidden; }
.checkout-overlay[hidden] { display: none; }
.checkout-overlay { position: fixed; z-index: 2000; inset: 0; display: grid; place-items: center; padding: 20px; overflow-y: auto; background: rgba(8,27,27,.68); backdrop-filter: blur(5px); }
.checkout-modal { position: relative; width: min(620px,100%); max-height: calc(100vh - 40px); overflow-y: auto; padding: clamp(22px,4vw,36px); border: 1px solid rgba(255,255,255,.35); border-radius: 24px; background: #fff; box-shadow: 0 28px 90px rgba(8,27,27,.35); }
.checkout-close { position: absolute; top: 14px; right: 14px; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: #f6f8f6; color: var(--ink); font-size: 1.55rem; line-height: 1; cursor: pointer; }
.checkout-close:hover { background: #edf3ef; }
.checkout-modal-heading { padding-right: 42px; }
.checkout-modal-heading h2 { margin: 7px 0 6px; font-size: clamp(1.55rem,4vw,2.15rem); }
.checkout-modal-heading p { margin: 0 0 22px; color: var(--muted); }
.checkout-form { display: grid; gap: 18px; }
.checkout-feedback { padding: 11px 13px; border-radius: 10px; background: #edf5f0; color: #285f43; font-size: .88rem; font-weight: 650; }
.checkout-feedback.is-error { background: #fff0f1; color: var(--red); }
.checkout-method-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 5px; border-radius: 13px; background: #edf1ee; }
.checkout-method-tabs button { padding: 11px 14px; border: 0; border-radius: 9px; background: transparent; color: var(--muted); font: 750 .93rem var(--font-display); cursor: pointer; }
.checkout-method-tabs button.is-active { background: #fff; color: var(--green); box-shadow: 0 3px 12px rgba(20,42,39,.08); }
.checkout-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.checkout-fields label { display: grid; gap: 7px; color: var(--ink); font: 700 .82rem var(--font-display); }
.checkout-field-full { grid-column: 1 / -1; }
.checkout-fields input { min-width: 0; }
.checkout-method-panel { padding: 13px 15px; border: 1px solid var(--line); border-radius: 13px; background: #f7faf8; }
.checkout-method-panel[hidden] { display: none; }
.checkout-method-note { display: grid; gap: 3px; }
.checkout-method-note span, .checkout-method-panel > small, .checkout-security { color: var(--muted); font-size: .78rem; }
.checkout-card-fields { margin-bottom: 10px; }
.checkout-submit { min-height: 48px; }
.checkout-security { display: block; text-align: center; }
.checkout-pix-result, .checkout-success { text-align: center; }
.checkout-pix-result[hidden], .checkout-success[hidden] { display: none; }
.checkout-status-icon { display: grid; place-items: center; width: 48px; height: 48px; margin: 0 auto 12px; border-radius: 50%; background: var(--mint-soft); color: var(--green); font: 800 .78rem var(--font-display); }
.checkout-pix-result h3, .checkout-success h3 { margin: 0 0 7px; font-size: 1.45rem; }
.checkout-pix-result > p, .checkout-success > p { margin: 0 auto 16px; color: var(--muted); }
.checkout-pix-result img { display: block; width: min(240px,70vw); height: auto; margin: 0 auto 16px; border: 10px solid #fff; border-radius: 12px; box-shadow: 0 6px 25px rgba(20,42,39,.12); }
.checkout-pix-result label { display: grid; gap: 7px; margin: 0 0 10px; color: var(--ink); font: 700 .82rem var(--font-display); text-align: left; }
.checkout-pix-result textarea { resize: none; font: 500 .72rem/1.35 ui-monospace,SFMono-Regular,Consolas,monospace; word-break: break-all; }
.checkout-waiting { display: flex; justify-content: center; align-items: center; gap: 10px; margin-top: 17px; color: var(--muted); font-size: .83rem; }
.checkout-waiting .diagnostic-loader { width: 22px; height: 22px; margin: 0; border-width: 3px; }
.diagnostic-payment-success { margin-top: 24px; }
.admin-title-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.status-processing { background: #e7effd; color: #315d93; }
.status-review_required { background: #fff1cc; color: #7b5a08; }
.status-failed { background: #fff0f1; color: var(--red); }
.status-offer_lead, .status-lead, .status-interest, .status-paid { background: var(--mint-soft); color: var(--green); }
.status-refunded { background: #fff1cc; color: #7b5a08; }
.diagnostic-admin-source { max-height: 360px; padding: 17px; overflow: auto; border-radius: 12px; background: #f5f7f5; color: #374642; white-space: pre-wrap; font: 500 .9rem/1.6 var(--font-body); }
.diagnostic-json-editor { min-height: 480px; }
.diagnostic-event-list { display: grid; gap: 0; }
.diagnostic-event-list > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.diagnostic-event-list strong { font-size: .8rem; }
.diagnostic-event-list small { color: var(--muted); }
.diagnostic-event-list .has-text-error { width: 100%; color: var(--danger); }
.side-card .diagnostic-event-list + form { margin-top: 14px; }
.diagnostic-funnel-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin: -8px 0 24px; }
.diagnostic-funnel-grid article { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 76px; padding: 15px 17px; border: 1px solid var(--line); border-radius: 15px; background: #fff; box-shadow: 0 8px 26px rgba(20,42,39,.035); }
.diagnostic-funnel-grid span { color: var(--muted); font-size: .78rem; font-weight: 700; }
.diagnostic-funnel-grid strong { color: var(--green); font: 800 1.65rem var(--font-display); }
.diagnostic-admin-table .panel-table-head, .diagnostic-admin-table .panel-row { grid-template-columns: 1.5fr .8fr 1.35fr 1fr 30px; }
.diagnostic-next-action { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 24px; padding: 22px 24px; border: 1px solid #bed9cd; border-radius: var(--radius); background: #f0f8f4; }
.diagnostic-next-action > div:first-child { min-width: 0; flex: 1; }
.diagnostic-next-action h2 { margin: 5px 0 6px; font-size: 1.3rem; }
.diagnostic-next-action p { margin: 0; color: var(--muted); }
.diagnostic-next-action blockquote { margin: 14px 0 0; padding: 13px 15px; border-left: 3px solid var(--green); border-radius: 0 10px 10px 0; background: rgba(255,255,255,.72); color: var(--ink); font-size: .9rem; line-height: 1.55; }
.diagnostic-action-buttons { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.diagnostic-action-buttons form { display: contents; }
@media (max-width: 820px) {
  .diagnostic-landing, .diagnostic-checkout { grid-template-columns: 1fr; }
  .diagnostic-intro h1 { max-width: 15ch; }
  .diagnostic-offer { grid-template-columns: 1fr; }
  .diagnostic-price-card { max-width: 380px; }
  .diagnostic-funnel-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .diagnostic-next-action { align-items: stretch; flex-direction: column; }
  .diagnostic-action-buttons { justify-content: flex-start; }
}
@media (max-width: 620px) {
  .diagnostic-top > div, .diagnostic-shell, .diagnostic-result-shell, .diagnostic-offer-shell { width: min(100% - 24px,1160px); }
  .diagnostic-top > div { min-height: 68px; }
  .diagnostic-top .brand small { display: none; }
  .diagnostic-free-tag { font-size: .62rem; }
  .diagnostic-shell, .diagnostic-result-shell, .diagnostic-offer-shell { padding-top: 34px; }
  .diagnostic-landing { grid-template-columns: 1fr; gap: 30px; }
  .diagnostic-intro h1 { font-size: clamp(2.25rem,11.5vw,3.25rem); }
  .diagnostic-form { padding: 22px 17px; border-radius: 20px; }
  .diagnostic-result-card { grid-template-columns: 1fr; gap: 8px; padding: 23px 19px; }
  .diagnostic-bio-heading { flex-direction: column; }
  .diagnostic-bio-heading .button { width: 100%; }
  .diagnostic-offer { padding: 24px 18px; }
  .diagnostic-offer-items { grid-template-columns: 1fr; }
  .diagnostic-price-card { max-width: none; }
  .diagnostic-checkout { padding: 24px 18px; }
  .diagnostic-contact-form { padding: 20px 16px; }
  .diagnostic-payment-card { position: static; }
  .checkout-overlay { align-items: end; padding: 0; }
  .checkout-modal { width: 100%; max-height: 92vh; padding: 24px 17px; border-radius: 22px 22px 0 0; }
  .checkout-fields { grid-template-columns: 1fr; }
  .checkout-field-full { grid-column: auto; }
  .admin-title-actions { width: 100%; }
  .admin-title-actions .button { flex: 1; }
  .diagnostic-funnel-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .diagnostic-funnel-grid article { min-height: 66px; padding: 12px 13px; }
  .diagnostic-action-buttons .button { width: 100%; }
}

/* Impressão */
@media print {
  @page { margin: 14mm; }
  body { background: #fff; font-size: 11pt; }
  .no-print, .client-topbar, .client-sidebar, .floating-actions, .creative-actions, .section-tools { display: none !important; }
  .client-layout { display: block; }
  .client-main { padding: 0; }
  .panel-hero, .next-step-card, .stage-action { background: #fff !important; color: #000 !important; border: 1px solid #999; box-shadow: none; }
  .diagnosis-hero { background: #fff !important; border: 1px solid #999; box-shadow: none; break-inside: avoid; }
  .diagnosis-hero .eyebrow, .diagnosis-hero-lead { color: #333 !important; }
  .diagnosis-shot-zoom { border: 1px solid #bbb; box-shadow: none; }
  .diagnosis-shot-zoom img { max-height: 90mm; object-fit: contain; }
  .stage-action .eyebrow, .stage-action-step, .stage-action-intro, .stage-action .prep-count { color: #333 !important; }
  .panel-hero .eyebrow, .next-step-card .eyebrow, .hero-identity small, .hero-summary, .next-step-card p, .next-fit { color: #333 !important; }
  .content-section, .plan-block, .creative-card, .field-item { break-inside: avoid; box-shadow: none; }
  .content-section { margin-top: 14pt; border: 0; border-top: 1px solid #bbb; border-radius: 0; padding: 14pt 0 0; }
  .more-block > div, .more-body, details > .more-body { display: block !important; }
  details:not([open]) > *:not(summary) { display: block !important; }
  .section-chevron, .section-facts, .section-tasks { display: none !important; }
  summary.section-title { padding: 0 0 12px; border-bottom: 1px solid #bbb; }
  .section-body { padding: 14pt 0 0; }
  .post-preview, .audio-shell { display: none !important; }
  [data-cycle-panel][hidden] { display: block !important; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 8pt; color: #555; }
  .creative-grid, .field-grid, .cycle-params, .plan-meta { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
