@font-face { font-family: 'Jost'; src: url('/fonts/jost-400.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Velino'; src: url('/fonts/velino-light.woff2') format('woff2'); font-display: swap; }
:root { --navy:#0D1726; --navy-2:#22344A; --cream:#F7F4EE; --ivory:#FCFAF6; --forest:#245C43; --green:#2F7D5B; --sky:#7FA8C9; --sand:#DDD6C9; --danger:#A54242; --shadow:0 22px 60px rgba(13,23,38,.16); }
* { box-sizing:border-box; }
html, body { min-height:100%; margin:0; background:var(--cream); color:var(--navy); font-family:Jost, Arial, sans-serif; }
button, input, textarea, select { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; opacity:.52; }
.site-header { position:absolute; inset:0 0 auto; z-index:2; padding:22px clamp(16px,4vw,68px); }
.header-bar { max-width:1240px; margin:auto; padding:12px 16px 12px 22px; min-height:64px; display:flex; align-items:center; gap:18px; border:1px solid rgba(255,255,255,.52); background:rgba(252,250,246,.91); backdrop-filter:blur(12px); border-radius:999px; box-shadow:0 10px 30px rgba(6,15,27,.12); }
.header-logo img { display:block; width:144px; height:auto; }
.header-tagline { flex:1; color:#405166; font-size:.92rem; letter-spacing:.02em; }
.admin-link { background:transparent; border:0; color:var(--navy); padding:10px 12px; font-size:.9rem; border-radius:999px; white-space:nowrap; }
.admin-link:hover { background:#e8e4db; }
.feedback-hero { min-height:435px; padding:140px 24px 110px; color:white; background:linear-gradient(90deg,rgba(13,23,38,.96) 3%,rgba(13,23,38,.86) 46%,rgba(13,23,38,.56) 100%), url('/assets/hero-home.webp') center/cover; }
.hero-content { max-width:1240px; margin:auto; }
.eyebrow { margin:0 0 14px; color:var(--sky); letter-spacing:.15em; text-transform:uppercase; font-size:.76rem; font-weight:700; }
.feedback-hero h1, .success-card h1, .login-card h1, .admin-heading h1 { font-family:Velino, Georgia, serif; font-weight:300; letter-spacing:-.025em; }
.feedback-hero h1 { max-width:740px; margin:0; font-size:clamp(2.5rem,5vw,4.6rem); line-height:1.02; }
.feedback-hero p:not(.eyebrow) { max-width:600px; color:rgba(252,250,246,.86); font-size:1.12rem; line-height:1.65; }
.feedback-stage { max-width:920px; margin:-84px auto 0; position:relative; z-index:1; padding:0 20px 64px; }
.question-card, .success-card { background:var(--ivory); border:1px solid rgba(221,214,201,.9); border-radius:28px; padding:clamp(26px,5vw,56px); box-shadow:var(--shadow); }
.progress-row { display:grid; grid-template-columns:repeat(8,1fr); gap:7px; margin-bottom:36px; }
.progress-segment { height:4px; border-radius:4px; background:#ded9ce; }
.progress-segment.is-active { background:var(--forest); }
.question-meta { display:flex; justify-content:space-between; gap:16px; color:#637184; font-size:.82rem; text-transform:uppercase; letter-spacing:.09em; }
.question-card h2 { margin:20px 0 12px; max-width:720px; font-family:Velino, Georgia, serif; font-weight:300; font-size:clamp(2rem,3.7vw,3.05rem); line-height:1.1; letter-spacing:-.02em; }
.question-helper, .field-note { color:#59687a; line-height:1.6; }
.rating-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin:30px 0 12px; }
.rating-button, .nps-button { min-height:90px; border:1px solid var(--sand); background:white; color:var(--navy); border-radius:16px; transition:.18s ease; }
.rating-button:hover, .nps-button:hover { border-color:var(--forest); transform:translateY(-2px); }
.rating-button.is-selected, .nps-button.is-selected { border-color:var(--forest); background:var(--forest); color:white; box-shadow:0 8px 18px rgba(36,92,67,.25); }
.rating-number { display:block; font-family:Velino, Georgia, serif; font-size:2.1rem; }
.rating-word { display:block; margin-top:4px; font-size:.7rem; }
.rating-note { min-height:24px; margin:0; color:var(--forest); font-size:.93rem; }
.nps-grid { display:grid; grid-template-columns:repeat(11,1fr); gap:7px; margin:28px 0 12px; }
.nps-button { min-height:48px; border-radius:11px; font-size:1rem; }
.nps-scale { display:flex; justify-content:space-between; color:#687687; font-size:.77rem; }
.field-label { display:block; margin:26px 0 9px; font-weight:bold; }
.feedback-textarea, .login-card input, .period-select { width:100%; border:1px solid var(--sand); border-radius:13px; background:white; color:var(--navy); padding:13px 14px; outline:none; }
.feedback-textarea { min-height:170px; resize:vertical; line-height:1.5; }
.feedback-textarea:focus, .login-card input:focus, .period-select:focus { border-color:var(--forest); box-shadow:0 0 0 3px rgba(36,92,67,.12); }
.card-actions { display:flex; justify-content:space-between; gap:14px; margin-top:34px; }
.button { min-height:46px; display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:999px; padding:11px 18px; border:1px solid transparent; font-weight:bold; transition:.18s ease; }
.button:hover:not(:disabled) { transform:translateY(-1px); }
.button-primary { background:var(--navy); color:white; }
.button-primary:hover:not(:disabled) { background:var(--navy-2); }
.button-secondary { background:transparent; color:var(--navy); border-color:#c8c1b4; }
.button-forest { background:var(--forest); color:white; }
.form-error { margin:18px 0 0; border-radius:12px; padding:12px 14px; color:#7c2929; background:#f9e6e3; line-height:1.45; }
.feedback-footer { max-width:920px; margin:auto; padding:0 26px 48px; display:flex; justify-content:space-between; align-items:center; gap:20px; color:#5c6a79; font-size:.83rem; line-height:1.6; }
.feedback-footer p { max-width:670px; }.feedback-footer img { width:105px; }
.success-card { max-width:720px; margin:auto; text-align:center; }.success-icon { width:68px; height:68px; margin:0 auto 18px; display:grid; place-items:center; border-radius:50%; background:#e0eee6; color:var(--forest); }.success-card h1 { font-size:clamp(2.1rem,4vw,3.4rem); margin:0 0 14px; }.success-card p { color:#59687a; line-height:1.65; }
.login-page { min-height:100vh; display:grid; place-items:center; padding:28px; background:linear-gradient(120deg,rgba(13,23,38,.97),rgba(34,52,74,.88)),url('/assets/hero-home.webp') center/cover; }.login-card { width:min(100%,460px); padding:38px; border-radius:24px; background:var(--ivory); box-shadow:var(--shadow); }.login-card img { width:150px; }.login-card h1 { margin:28px 0 10px; font-size:2.5rem; }.login-card p { color:#59687a; line-height:1.6; }.login-card form { display:grid; gap:11px; margin-top:25px; }
.admin-page { min-height:100vh; background:var(--cream); }.admin-topbar { position:sticky; top:0; z-index:50; padding:16px 24px; background:rgba(13,23,38,.97); box-shadow:0 8px 24px rgba(5,14,25,.18); backdrop-filter:blur(16px); }.admin-topbar-inner { max-width:1220px; margin:auto; display:flex; justify-content:space-between; align-items:center; }.admin-topbar img { width:145px; }.admin-topbar .button-secondary { border-color:rgba(255,255,255,.4); color:white; }.admin-body { max-width:1220px; margin:auto; padding:56px 24px 72px; }.admin-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:32px; }.admin-heading h1 { margin:0; font-size:clamp(2.3rem,4.2vw,4rem); }.admin-heading p:not(.eyebrow) { max-width:520px; color:#59687a; line-height:1.6; }.dashboard-actions { display:flex; gap:10px; align-items:center; }.period-select { width:auto; }.metric-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:22px; }.metric-card, .admin-card, .analysis-card { border:1px solid var(--sand); border-radius:19px; background:var(--ivory); padding:22px; }.metric-card { position:relative; overflow:hidden; }.metric-card::after { content:''; position:absolute; inset:auto 0 0; height:4px; background:linear-gradient(90deg,#245C43,#86b69a); }.metric-card:nth-child(1)::after { background:#6c8fb2; }.metric-card:nth-child(3)::after { background:#b68b5b; }.metric-card:nth-child(4)::after { background:#719b7e; }.metric-card-top { display:flex; justify-content:space-between; align-items:center; gap:10px; }.metric-info { width:25px; height:25px; display:grid; place-items:center; flex:0 0 auto; border:1px solid #b9c6be; border-radius:50%; color:#32624b; background:#edf4ef; font:700 .78rem/1 Arial,sans-serif; cursor:pointer; }.metric-info:hover, .metric-info:focus-visible { color:#fff; background:#245C43; outline:3px solid rgba(36,92,67,.2); outline-offset:2px; }.card-heading-actions { display:flex; align-items:center; gap:10px; }.metric-info-modal { z-index:80; }.metric-info-modal-card { position:relative; width:min(100%,520px); padding:34px; border:1px solid rgba(255,255,255,.5); border-radius:22px; color:var(--navy); background:var(--ivory); box-shadow:var(--shadow); }.metric-info-modal-card h2 { margin:0 0 12px; font-family:Velino,Georgia,serif; font-size:2.1rem; font-weight:300; }.metric-info-modal-card p:not(.eyebrow) { color:#59687a; line-height:1.65; }.metric-info-confirm { margin-top:12px; min-width:130px; }.volume-chart { height:190px; display:flex; align-items:end; gap:clamp(5px,1vw,12px); overflow-x:auto; margin-top:20px; padding:0 4px 0; border-bottom:1px solid #d8d9d2; }.volume-column { min-width:38px; flex:1 0 38px; display:grid; justify-items:center; align-items:end; gap:6px; }.volume-column b { color:#526170; font-size:.77rem; }.volume-column span { width:100%; min-height:10px; border-radius:8px 8px 2px 2px; background:linear-gradient(180deg,#8caac6,#3d6388); }.volume-column small { max-width:70px; overflow:hidden; color:#718094; font-size:.65rem; text-overflow:ellipsis; white-space:nowrap; }.chart-axis-note { margin:10px 0 0; color:#758192; font-size:.72rem; }.nps-trend-chart polyline { stroke:#ad7650; }.nps-trend-chart circle { stroke:#ad7650; }.nps-trend-wrap .trend-labels:first-of-type { margin-bottom:5px; }.metric-card p { margin:0; color:#607083; font-size:.86rem; }.metric-card strong { display:block; margin:10px 0 6px; font-family:Velino,Georgia,serif; font-size:2.5rem; font-weight:300; }.metric-card small, .card-subtitle, .analysis-meta, .analysis-empty { color:#687687; line-height:1.55; }.dashboard-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:18px; }.admin-card h2,.analysis-card h2,.analysis-card h3 { font-family:Velino,Georgia,serif; font-weight:300; }.dimension-row { display:grid; grid-template-columns:145px 1fr 36px; gap:10px; align-items:center; margin:17px 0; font-size:.9rem; }.dimension-bar { height:8px; overflow:hidden; border-radius:999px; background:#e1ddd4; }.dimension-fill { height:100%; border-radius:inherit; background:var(--forest); }.comment-list { max-height:390px; overflow:auto; }.comment-item { padding:13px 0; border-bottom:1px solid #e4dfd5; }.comment-item p { margin:0 0 5px; line-height:1.5; }.comment-item small { color:#778495; }.analysis-card { margin-top:18px; }.analysis-header { display:flex; justify-content:space-between; gap:20px; align-items:start; }.analysis-content { display:flex; flex-direction:column; gap:0; margin-top:24px; }.analysis-section { padding:22px 0 24px; border-top:1px solid var(--sand); }.analysis-section:first-child { padding-top:0; border-top:0; }.analysis-section h3 { margin:0 0 8px; font-size:1.6rem; }.analysis-section h4 { margin:20px 0 8px; color:var(--navy); font-size:1rem; letter-spacing:.03em; }.analysis-kicker { margin:0 0 5px; color:var(--forest); font-size:.73rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }.analysis-subtitle { margin:0 0 12px; color:#687687; font-size:.91rem; line-height:1.55; }.analysis-section p:not(.analysis-kicker):not(.analysis-subtitle), .analysis-section li { max-width:980px; color:#435162; line-height:1.65; }.analysis-section strong { color:var(--navy); font-weight:700; }.analysis-section ul { max-width:980px; margin:0; padding-left:20px; }.analysis-commercial { padding:26px 22px; border:1px solid rgba(47,125,91,.28); border-radius:16px; background:linear-gradient(135deg,rgba(231,239,233,.74),rgba(252,250,246,.58)); }.analysis-commercial + .analysis-section { margin-top:0; }.analysis-commercial h3 { color:var(--forest); }.notice { padding:14px 16px; border-radius:12px; background:#e7efe9; color:#22513b; line-height:1.5; margin:18px 0 0; }
@media (max-width:780px) { .admin-topbar { padding:12px 15px; }.admin-topbar img { width:122px; }.admin-user-chip { max-width:140px; }.metric-info { width:23px; height:23px; } .metric-info-modal-card { padding:30px 22px; }.site-header { padding:12px; }.header-bar { padding:10px 14px; min-height:54px; }.header-logo img { width:122px; }.header-tagline { display:none; }.feedback-hero { min-height:370px; padding:115px 24px 92px; }.feedback-stage { margin:-58px auto 0; padding:0 13px 42px; }.question-card { border-radius:21px; padding:25px 19px; }.rating-grid { grid-template-columns:repeat(5,1fr); gap:6px; }.rating-button { min-height:76px; border-radius:12px; }.rating-number { font-size:1.7rem; }.rating-word { font-size:.58rem; }.nps-grid { gap:4px; }.nps-button { min-height:42px; border-radius:8px; font-size:.86rem; }.card-actions { flex-direction:column-reverse; }.button { width:100%; }.feedback-footer { flex-direction:column; align-items:flex-start; padding:0 22px 36px; }.admin-body { padding:35px 15px 50px; }.admin-heading,.analysis-header { align-items:stretch; flex-direction:column; }.dashboard-actions { flex-direction:column; align-items:stretch; }.period-select { width:100%; }.metric-grid,.dashboard-grid { grid-template-columns:1fr; }.dimension-row { grid-template-columns:105px 1fr 32px; font-size:.82rem; }.admin-topbar { padding:14px 16px; } }
.qr-modal { position:fixed; inset:0; z-index:20; display:grid; place-items:center; padding:20px; background:rgba(13,23,38,.72); backdrop-filter:blur(4px); }
.qr-modal-card { position:relative; width:min(100%,430px); padding:34px; border-radius:22px; background:var(--ivory); color:var(--navy); text-align:center; box-shadow:var(--shadow); }
.qr-modal-card h2 { margin:0 0 8px; font-family:Velino,Georgia,serif; font-size:2rem; font-weight:300; }
.qr-modal-card p { color:#59687a; line-height:1.55; }
#qr-canvas { display:grid; place-items:center; margin:22px auto; padding:15px; background:var(--ivory); border:1px solid var(--sand); border-radius:15px; width:max-content; max-width:100%; }
#qr-canvas img { display:block; width:min(260px,100%); height:auto; }
.qr-modal-card code { display:block; overflow-wrap:anywhere; color:#526170; font-size:.78rem; }
.qr-close { position:absolute; top:13px; right:15px; width:34px; height:34px; border:0; background:transparent; color:var(--navy); font-size:1.8rem; line-height:1; }

/* Pesquisa compacta: uma tela, sem rolagem vertical */
html:has(body.survey-page), body.survey-page { height:100%; min-height:100%; overflow:hidden; }
.survey-shell { position:relative; min-height:100svh; overflow:hidden; display:grid; place-items:center; isolation:isolate; color:var(--ivory); }
.survey-backdrop { position:absolute; inset:0; z-index:-2; background:url('/assets/hero-spa-recovery-sunset.png') center/cover no-repeat; }
.survey-backdrop::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(8,19,32,.9) 0%, rgba(8,19,32,.68) 44%, rgba(8,19,32,.3) 100%); }
.survey-shell .site-header { width:100%; padding:clamp(12px,2.6vw,28px) clamp(16px,4vw,68px); }
.survey-layout { width:min(1240px,100%); min-height:100svh; display:grid; grid-template-columns:minmax(0,.92fr) minmax(460px,1.08fr); align-items:center; gap:clamp(28px,5vw,80px); padding:112px clamp(20px,4vw,68px) 26px; }
.compact-hero { align-self:center; max-width:500px; text-shadow:0 2px 18px rgba(6,15,27,.28); }
.compact-hero .eyebrow { margin-bottom:10px; color:#b5d2e4; }
.compact-hero h1 { max-width:480px; margin:0; font-family:Velino, Georgia, serif; font-size:clamp(2.6rem,5.2vw,5rem); line-height:.98; font-weight:300; letter-spacing:-.035em; }
.compact-hero p:not(.eyebrow) { max-width:430px; margin:18px 0 0; color:rgba(252,250,246,.92); font-size:clamp(1rem,1.4vw,1.15rem); line-height:1.55; }
.compact-question-card { width:100%; max-width:690px; justify-self:end; padding:clamp(22px,3vw,36px); border:1px solid rgba(255,255,255,.55); border-radius:26px; color:var(--navy); background:rgba(252,250,246,.94); box-shadow:0 24px 70px rgba(6,15,27,.26); backdrop-filter:blur(15px); }
.compact-card-heading .question-meta { margin:0 0 12px; color:#637184; }
.compact-card-heading h2 { margin:0; font-family:Velino, Georgia, serif; font-weight:300; font-size:clamp(1.8rem,3vw,2.6rem); line-height:1.06; letter-spacing:-.025em; }
.compact-rating-grid { margin:22px 0 8px; }
.compact-rating-grid .rating-button { min-height:76px; background:rgba(255,255,255,.78); }
.comment-field { margin-top:16px; }
.comment-field .field-label { margin:0 0 7px; font-size:.93rem; }
.field-label span { color:#687687; font-weight:400; }
.survey-page .feedback-textarea { min-height:72px; max-height:94px; padding:11px 13px; resize:none; background:rgba(255,255,255,.77); backdrop-filter:blur(8px); }
.survey-page .field-note { margin:6px 0 0; font-size:.76rem; line-height:1.35; }
.survey-page .form-error { margin:12px 0 0; }
.submit-feedback { width:100%; margin-top:16px; }
.thanks-page { min-height:100vh; display:grid; place-items:center; padding:120px 22px 60px; background:linear-gradient(120deg,rgba(13,23,38,.96),rgba(34,52,74,.83)),url('/assets/hero-spa-recovery-sunset.png') center/cover; }

@media (max-width:780px) {
  .survey-layout { grid-template-columns:1fr; align-content:center; gap:14px; padding:82px 13px 14px; }
  .survey-shell .site-header { padding:10px 13px; }
  .compact-hero { align-self:end; max-width:100%; }
  .compact-hero .eyebrow { margin-bottom:5px; font-size:.64rem; }
  .compact-hero h1 { font-size:clamp(2.15rem,10vw,3.2rem); }
  .compact-hero p:not(.eyebrow) { margin-top:8px; font-size:.9rem; line-height:1.35; }
  .compact-question-card { justify-self:stretch; padding:18px 16px; border-radius:20px; }
  .compact-card-heading .question-meta { margin-bottom:7px; font-size:.67rem; }
  .compact-card-heading h2 { font-size:1.55rem; }
  .compact-rating-grid { margin:14px 0 4px; }
  .compact-rating-grid .rating-button { min-height:60px; padding:5px 2px; }
  .compact-rating-grid .rating-number { font-size:1.5rem; }
  .compact-rating-grid .rating-word { margin-top:1px; font-size:.52rem; }
  .survey-page .rating-note { min-height:17px; font-size:.76rem; }
  .comment-field { margin-top:9px; }
  .comment-field .field-label { font-size:.82rem; }
  .survey-page .feedback-textarea { min-height:56px; max-height:64px; padding:8px 10px; font-size:.84rem; }
  .survey-page .field-note { display:none; }
  .submit-feedback { min-height:42px; margin-top:10px; padding:8px 15px; }
}

@media (max-height:700px) and (min-width:781px) {
  .survey-layout { gap:38px; padding-top:92px; }
  .compact-hero h1 { font-size:clamp(2.5rem,4.3vw,4.2rem); }
  .compact-question-card { padding:23px 29px; }
  .compact-rating-grid .rating-button { min-height:62px; }
  .survey-page .feedback-textarea { min-height:55px; max-height:64px; }
  .survey-page .field-note { margin-top:3px; font-size:.7rem; }
  .submit-feedback { margin-top:10px; }
}

/* No mobile, o enquadramento privilegia o pôr do sol no lado direito da imagem. */
@media (max-width:780px) {
  .survey-backdrop { background-position:right center; }
}

/* Refinamento da capa: logotipo direto, vidro fosco e maior área de comentário. */
.survey-shell .site-header.site-header-minimal {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  max-width:none;
  padding:20px clamp(18px,4vw,68px);
}
.site-header-minimal .header-logo { display:block; }
.site-header-minimal .header-logo-white img {
  display:block;
  width:clamp(180px,18vw,252px);
  height:auto;
  filter:drop-shadow(0 3px 14px rgba(2,9,17,.34));
}
.site-header-minimal .admin-link {
  margin-top:8px;
  color:rgba(252,250,246,.94);
  border:1px solid rgba(255,255,255,.3);
  background:rgba(13,23,38,.22);
  box-shadow:0 5px 20px rgba(2,9,17,.14);
  backdrop-filter:blur(8px);
}
.site-header-minimal .admin-link:hover { background:rgba(13,23,38,.46); }
.survey-layout { padding-top:96px; }
.compact-hero { transform:translateY(-42px); }
.compact-question-card {
  border-color:rgba(255,255,255,.46);
  background:linear-gradient(135deg,rgba(252,250,246,.68),rgba(235,241,236,.52));
  box-shadow:0 24px 70px rgba(4,13,24,.3), inset 0 1px 0 rgba(255,255,255,.44);
  backdrop-filter:blur(23px) saturate(128%);
  -webkit-backdrop-filter:blur(23px) saturate(128%);
}
.compact-rating-grid .rating-button { background:rgba(255,255,255,.64); }
.survey-page .feedback-textarea {
  min-height:98px;
  max-height:124px;
  background:rgba(255,255,255,.58);
}

@media (max-width:780px) {
  .survey-shell .site-header.site-header-minimal { padding:15px 14px; }
  .site-header-minimal .header-logo-white img { width:166px; }
  .site-header-minimal .admin-link { margin-top:2px; padding:8px 10px; font-size:.75rem; }
  .survey-layout { align-content:start; gap:14px; padding:164px 13px 14px; }
  .compact-hero { transform:none; }
  .survey-page .feedback-textarea { min-height:78px; max-height:88px; }
}

@media (max-height:700px) and (min-width:781px) {
  .survey-layout { padding-top:82px; }
  .compact-hero { transform:translateY(-28px); }
  .survey-page .feedback-textarea { min-height:72px; max-height:78px; }
}

/* Estado de escolha: verde institucional sólido para permanecer nítido sobre o vidro fosco. */
.compact-rating-grid .rating-button.is-selected {
  border-color:#164B35;
  background:#246749;
  color:#FFFFFF;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 8px 18px rgba(16,70,47,.34);
}
.compact-rating-grid .rating-button.is-selected .rating-number,
.compact-rating-grid .rating-button.is-selected .rating-word { color:#FFFFFF; }
.compact-rating-grid .rating-button:focus-visible {
  outline:3px solid rgba(36,103,73,.42);
  outline-offset:3px;
}

/* Aproxima o texto editorial do cabeçalho no mobile, sem deslocar o cartão do questionário. */
@media (max-width:780px) {
  .compact-hero { transform:translateY(-40px); }
}

/* Ajuste de escala mobile: cartão elevado 40 px e textos ampliados em cerca de 20%. */
@media (max-width:780px) {
  .compact-question-card { transform:translateY(-40px); }
  .compact-hero .eyebrow { font-size:.77rem; }
  .compact-hero p:not(.eyebrow) { font-size:1.08rem; }
  .compact-card-heading .question-meta { font-size:.80rem; }
  .compact-card-heading h2 { font-size:1.86rem; }
  .compact-rating-grid .rating-word { font-size:.62rem; }
  .survey-page .rating-note { font-size:.91rem; }
  .comment-field .field-label { font-size:.98rem; }
  .survey-page .feedback-textarea { font-size:1rem; }
}

/* Questionário detalhado — nove perguntas, com experiência sensível e progressiva. */
.detailed-survey-shell { position:relative; min-height:100svh; isolation:isolate; overflow:hidden; color:var(--ivory); }
.detailed-survey-shell .site-header.site-header-minimal { display:flex; align-items:flex-start; justify-content:space-between; padding:22px clamp(18px,4vw,68px); }
.detailed-survey-layout { position:relative; z-index:1; width:min(1220px,100%); min-height:100svh; margin:auto; display:grid; grid-template-columns:minmax(300px,.82fr) minmax(500px,1.18fr); gap:clamp(34px,6vw,100px); align-items:center; padding:118px clamp(22px,4vw,68px) 56px; }
.detailed-intro { max-width:450px; text-shadow:0 3px 18px rgba(4,12,22,.32); }
.detailed-intro h1 { margin:0; font-family:Velino,Georgia,serif; font-size:clamp(3.4rem,5.5vw,5.4rem); line-height:.93; font-weight:300; letter-spacing:-.04em; }
.detailed-intro > p:not(.eyebrow) { margin:22px 0 0; max-width:410px; color:rgba(252,250,246,.93); font-size:1.1rem; line-height:1.58; }
.privacy-note { display:grid; gap:4px; margin-top:30px; max-width:360px; padding:14px 16px; border-left:2px solid #9ebaa8; color:rgba(252,250,246,.88); background:rgba(10,25,40,.25); backdrop-filter:blur(8px); font-size:.82rem; line-height:1.45; }
.privacy-note b { color:#fff; font-size:.88rem; }
.detailed-question-card { width:100%; max-width:710px; justify-self:end; padding:clamp(28px,4vw,48px); border:1px solid rgba(255,255,255,.48); border-radius:28px; color:var(--navy); background:linear-gradient(135deg,rgba(252,250,246,.76),rgba(230,239,231,.57)); box-shadow:0 28px 80px rgba(4,13,24,.32), inset 0 1px 0 rgba(255,255,255,.54); backdrop-filter:blur(24px) saturate(128%); -webkit-backdrop-filter:blur(24px) saturate(128%); }
.survey-progress { margin-bottom:28px; }
.survey-progress-meta { display:flex; justify-content:space-between; gap:16px; color:#536276; font-size:.75rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.survey-progress-track { height:5px; margin-top:10px; overflow:hidden; border-radius:999px; background:rgba(60,82,76,.16); }
.survey-progress-track span { display:block; height:100%; border-radius:inherit; background:var(--forest); transition:width .22s ease; }
.question-topic { margin:0 0 12px; color:#52755f; font-size:.82rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.detailed-question-card h2 { max-width:630px; margin:0; font-family:Velino,Georgia,serif; font-size:clamp(2rem,3.5vw,3rem); font-weight:300; line-height:1.08; letter-spacing:-.025em; }
.detailed-question-card .question-helper { max-width:590px; margin:16px 0 0; font-size:.96rem; line-height:1.55; }
.question-options { margin-top:26px; }
.detailed-rating-grid { margin:0; }
.detailed-rating-grid .rating-button { min-height:86px; background:rgba(255,255,255,.65); }
.detailed-rating-grid .rating-button.is-selected, .detailed-nps-grid .nps-button.is-selected { border-color:#164B35; background:#246749; color:#fff; box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 8px 18px rgba(16,70,47,.3); }
.detailed-rating-grid .rating-button.is-selected .rating-number, .detailed-rating-grid .rating-button.is-selected .rating-word { color:#fff; }
.not-applicable { margin-top:11px; border:1px solid #a6b4ae; border-radius:999px; padding:9px 14px; color:#536276; background:rgba(255,255,255,.42); font-size:.84rem; }
.not-applicable:hover, .not-applicable.is-selected { border-color:#245C43; color:#fff; background:#245C43; }
.detailed-nps-grid { margin:0; }
.detailed-nps-grid .nps-button { background:rgba(255,255,255,.65); }
.answer-status { min-height:23px; margin:14px 0 0; color:#245C43; font-size:.92rem; }
.survey-actions { display:flex; justify-content:space-between; gap:12px; margin-top:22px; }
.survey-actions .button { min-width:150px; }
.detailed-comment { min-height:175px; margin-top:26px; resize:vertical; background:rgba(255,255,255,.62); }

/* Dashboard analítico. */
.admin-dashboard-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:18px; }
.admin-dashboard-grid > .admin-card { grid-column:span 4; }
.admin-dashboard-grid > .dashboard-span-2 { grid-column:span 8; }
.card-heading { display:flex; justify-content:space-between; gap:18px; align-items:start; }
.card-heading h2, .admin-card h2, .history-card h2 { margin:0; font-family:Velino,Georgia,serif; font-size:1.85rem; font-weight:300; }
.card-heading .card-subtitle { margin:8px 0 0; }
.detail-badge { padding:7px 10px; border-radius:999px; color:#3d6652; background:#e4eee7; font-size:.75rem; font-weight:700; white-space:nowrap; }
.metric-card.forest { border-color:#b7d1bf; background:linear-gradient(135deg,#eff7f1,#fafbf7); }
.dimension-chart { display:grid; gap:17px; margin-top:25px; }
.dimension-chart-row { display:grid; gap:7px; }
.dimension-chart-title { display:flex; justify-content:space-between; gap:12px; font-size:.89rem; }
.dimension-chart-title b { color:#245C43; font-family:Velino,Georgia,serif; font-size:1.15rem; font-weight:400; }
.dimension-track { height:10px; overflow:hidden; border-radius:999px; background:#e1e4dd; }
.dimension-track span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#245C43,#7ea78e); }
.dimension-chart-row small { color:#6a7786; font-size:.76rem; }
.distribution-chart { height:160px; display:flex; align-items:end; justify-content:space-around; gap:10px; margin-top:25px; padding:0 10px 0; border-bottom:1px solid #d8d9d2; }
.distribution-column { min-width:34px; display:grid; justify-items:center; align-items:end; gap:7px; }
.distribution-column b { color:#526170; font-size:.8rem; }
.distribution-column span { width:100%; min-height:7px; border-radius:8px 8px 2px 2px; background:linear-gradient(#94b8a1,#245C43); }
.distribution-column small { color:#718094; font-weight:700; }
.distribution-caption { display:flex; justify-content:space-between; gap:15px; margin-top:10px; color:#758192; font-size:.72rem; }
.trend-chart-wrap { margin-top:21px; }
.trend-chart { display:block; width:100%; height:auto; overflow:visible; }
.trend-chart line { stroke:#d6ddd7; stroke-dasharray:4 5; }
.trend-chart polyline { fill:none; stroke:#245C43; stroke-width:4; stroke-linecap:round; stroke-linejoin:round; }
.trend-chart circle { fill:#fcfaf6; stroke:#245C43; stroke-width:3; }
.trend-labels { display:flex; justify-content:space-between; color:#748192; font-size:.75rem; }
.empty-chart { min-height:142px; display:grid; place-items:center; margin:20px 0 0; padding:20px; border:1px dashed #c7cdc5; border-radius:14px; color:#6d7b88; text-align:center; line-height:1.5; }
.history-card { margin-top:18px; padding:24px; border:1px solid var(--sand); border-radius:19px; background:var(--ivory); }
.history-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:18px; }
.history-item { display:flex; justify-content:space-between; gap:14px; align-items:center; padding:14px; border:1px solid #dfe2dc; border-radius:13px; color:var(--navy); background:#fbfaf6; text-align:left; }
.history-item:hover { border-color:#8db19b; background:#f2f7f1; }
.history-item span:first-child { display:grid; gap:3px; }.history-item small { color:#697787; }
.report-modal { overflow:auto; align-items:start; }
.report-modal-card { position:relative; width:min(1120px,100%); margin:auto; padding:38px; border-radius:22px; color:var(--navy); background:var(--ivory); box-shadow:var(--shadow); }
.report-modal-card > h2 { max-width:calc(100% - 40px); margin:0; font-family:Velino,Georgia,serif; font-size:2rem; font-weight:300; }

@media (max-width:900px) {
  .detailed-survey-layout { grid-template-columns:1fr; align-content:start; gap:26px; padding:168px 18px 42px; }
  .detailed-intro { max-width:620px; }.detailed-intro h1 { font-size:clamp(3rem,11vw,4.4rem); }.detailed-intro > p:not(.eyebrow) { max-width:570px; }
  .privacy-note { display:none; }.detailed-question-card { max-width:none; justify-self:stretch; }
  .admin-dashboard-grid > .admin-card, .admin-dashboard-grid > .dashboard-span-2 { grid-column:span 6; }
}
@media (max-width:780px) {
  .detailed-survey-shell .site-header.site-header-minimal { padding:15px 14px; }.detailed-survey-layout { padding:128px 13px 30px; gap:22px; }
  .detailed-intro .eyebrow { margin-bottom:8px; }.detailed-intro h1 { font-size:3rem; }.detailed-intro > p:not(.eyebrow) { margin-top:12px; font-size:1rem; }
  .detailed-question-card { padding:24px 17px; border-radius:22px; }.survey-progress { margin-bottom:21px; }.survey-progress-meta { font-size:.65rem; }
  .detailed-question-card h2 { font-size:2rem; }.detailed-question-card .question-helper { margin-top:11px; font-size:.88rem; }.question-options { margin-top:20px; }
  .detailed-rating-grid .rating-button { min-height:76px; padding:6px 2px; }.detailed-rating-grid .rating-number { font-size:1.65rem; }.detailed-rating-grid .rating-word { font-size:.56rem; }
  .detailed-nps-grid { grid-template-columns:repeat(6,1fr); gap:6px; }.detailed-nps-grid .nps-button { min-height:44px; }
  .survey-actions { margin-top:18px; }.survey-actions .button { min-width:0; width:auto; flex:1; }.detailed-comment { min-height:150px; }
  .admin-dashboard-grid { grid-template-columns:1fr; }.admin-dashboard-grid > .admin-card, .admin-dashboard-grid > .dashboard-span-2 { grid-column:auto; }.card-heading { flex-direction:column; gap:8px; }.history-card { padding:20px 16px; }.history-list { grid-template-columns:1fr; }.report-modal-card { padding:30px 18px; }.report-modal-card .analysis-content { grid-template-columns:1fr; }
}

/* Preferência de visualização no painel administrativo. */
.admin-header-actions { display:flex; gap:10px; align-items:center; }
.admin-user-chip { max-width:240px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#e5efe9; font-size:.78rem; font-weight:700; }
.theme-toggle { min-width:118px; }
.audit-list { display:grid; gap:0; margin-top:18px; }
.audit-item { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:14px; align-items:center; padding:13px 0; border-top:1px solid #e2e5df; }
.audit-item > div { display:grid; gap:3px; min-width:0; }
.audit-item b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.88rem; }
.audit-item small, .audit-item time { color:#6b7885; font-size:.76rem; }
.audit-status { padding:5px 8px; border-radius:999px; color:#37634c; background:#e6f0e8; font-size:.7rem; font-weight:700; }
.audit-status.failure { color:#8a4d3b; background:#f7e7df; }
.audit-status.blocked { color:#7c6526; background:#f5efcf; }
.access-form { margin-top:20px; padding:16px; border:1px solid #e2e5df; border-radius:14px; background:#fbfaf6; }
.access-form-grid { display:grid; grid-template-columns:1.2fr 1fr 1fr auto; gap:12px; align-items:end; }
.access-form .field-label { display:grid; gap:7px; color:#526170; font-size:.76rem; font-weight:700; }
.access-form input { width:100%; min-width:0; padding:10px 11px; border:1px solid #d8ddd6; border-radius:9px; color:var(--navy); background:#fff; font:inherit; font-size:.88rem; }
.access-form .button { min-height:40px; }
.button-small { padding:9px 11px; font-size:.73rem; }
.admin-access-list { display:grid; gap:0; margin-top:18px; }
.admin-access-item { display:flex; justify-content:space-between; gap:18px; align-items:center; padding:15px 0; border-top:1px solid #e2e5df; }
.admin-access-item > div:first-child { display:grid; gap:4px; min-width:0; }
.admin-access-item b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-access-item small { color:#6b7885; font-size:.76rem; }
.admin-access-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
html[data-theme='dark'] .admin-page { background:#0D1726; color:#F7F4EE; }
html[data-theme='dark'] .admin-body { color:#F7F4EE; }
html[data-theme='dark'] .admin-heading p:not(.eyebrow), html[data-theme='dark'] .metric-card p, html[data-theme='dark'] .metric-card small, html[data-theme='dark'] .card-subtitle, html[data-theme='dark'] .analysis-meta, html[data-theme='dark'] .analysis-empty, html[data-theme='dark'] .dimension-chart-row small, html[data-theme='dark'] .distribution-caption, html[data-theme='dark'] .trend-labels, html[data-theme='dark'] .history-item small { color:#b8c7d2; }
html[data-theme='dark'] .metric-card, html[data-theme='dark'] .admin-card, html[data-theme='dark'] .analysis-card, html[data-theme='dark'] .history-card { border-color:rgba(188,207,219,.2); background:#162538; box-shadow:0 12px 34px rgba(0,0,0,.16); } html[data-theme='dark'] .metric-info { border-color:#557369; color:#b4d2bd; background:#203c35; } html[data-theme='dark'] .metric-info:hover, html[data-theme='dark'] .metric-info:focus-visible { color:#0D1726; background:#a8cfb3; } html[data-theme='dark'] .metric-info-modal-card { color:#F7F4EE; background:#162538; border-color:rgba(188,207,219,.2); } html[data-theme='dark'] .metric-info-modal-card p:not(.eyebrow) { color:#d6e0e4; } html[data-theme='dark'] .volume-chart { border-color:#344657; } html[data-theme='dark'] .volume-column b, html[data-theme='dark'] .volume-column small, html[data-theme='dark'] .chart-axis-note { color:#b8c7d2; }
html[data-theme='dark'] .metric-card.forest { border-color:rgba(102,159,127,.5); background:linear-gradient(135deg,#173626,#152a32); }
html[data-theme='dark'] .metric-card strong, html[data-theme='dark'] .dimension-chart-title b, html[data-theme='dark'] .card-heading h2, html[data-theme='dark'] .admin-card h2, html[data-theme='dark'] .analysis-card h2, html[data-theme='dark'] .analysis-card h3, html[data-theme='dark'] .history-card h2 { color:#F7F4EE; }
html[data-theme='dark'] .dimension-chart-title, html[data-theme='dark'] .comment-item p, html[data-theme='dark'] .analysis-content p, html[data-theme='dark'] .analysis-content li { color:#e2e9e5; }
html[data-theme='dark'] .dimension-track { background:#304253; }
html[data-theme='dark'] .distribution-chart { border-color:#344657; }
html[data-theme='dark'] .distribution-column b { color:#dce6e2; }
html[data-theme='dark'] .trend-chart line { stroke:#3e5060; }
html[data-theme='dark'] .trend-chart circle { fill:#162538; }
html[data-theme='dark'] .comment-item { border-color:rgba(188,207,219,.16); }
html[data-theme='dark'] .audit-item { border-color:rgba(188,207,219,.16); } html[data-theme='dark'] .access-form { border-color:rgba(188,207,219,.18); background:#1c2d40; } html[data-theme='dark'] .access-form .field-label { color:#b8c7d2; } html[data-theme='dark'] .access-form input { border-color:#465a68; color:#f5f3ee; background:#162538; } html[data-theme='dark'] .admin-access-item { border-color:rgba(188,207,219,.16); } html[data-theme='dark'] .admin-access-item small { color:#b8c7d2; } html[data-theme='dark'] .audit-item small, html[data-theme='dark'] .audit-item time { color:#b8c7d2; } html[data-theme='dark'] .audit-status { color:#d5eadc; background:#234735; } html[data-theme='dark'] .audit-status.failure { color:#f0c2b3; background:#54302a; } html[data-theme='dark'] .audit-status.blocked { color:#f0dda1; background:#514622; }
html[data-theme='dark'] .history-item { border-color:rgba(188,207,219,.18); color:#f5f3ee; background:#1c2d40; }
html[data-theme='dark'] .history-item:hover { border-color:#7ea78e; background:#213a3f; } html[data-theme='dark'] .analysis-section { border-color:rgba(188,207,219,.18); } html[data-theme='dark'] .analysis-section h4, html[data-theme='dark'] .analysis-commercial h3 { color:#c7e0d0; } html[data-theme='dark'] .analysis-commercial { border-color:rgba(126,167,142,.42); background:linear-gradient(135deg,rgba(36,92,67,.42),rgba(22,37,56,.7)); }
html[data-theme='dark'] .detail-badge { color:#d5eadc; background:#234735; }
html[data-theme='dark'] .empty-chart { border-color:#465a68; color:#b9c6cf; }
@media (max-width:780px) { .admin-header-actions { gap:7px; flex-wrap:wrap; justify-content:flex-end; }.admin-user-chip { max-width:150px; }.theme-toggle { min-width:0; }.audit-item { grid-template-columns:minmax(0,1fr) auto; gap:8px; }.audit-item time { grid-column:1 / -1; }.access-form-grid { grid-template-columns:1fr; }.admin-access-item { align-items:start; flex-direction:column; gap:12px; }.admin-access-actions { justify-content:flex-start; } }

/* A chamada principal adapta-se à largura do próprio bloco sem quebrar de linha. */
.detailed-intro { container-type:inline-size; }
.detailed-intro h1 {
  white-space:nowrap;
  font-size:clamp(1.5rem, 9vw, 3rem);
  font-size:clamp(1.5rem, 10cqi, 3rem);
}
@media (max-width:780px) {
  .detailed-intro h1 { font-size:clamp(1.5rem, 10cqi, 2.35rem); }
}

/* Comentário contextual em cada pergunta, sempre antes da escala de avaliação. */
.question-comment-field { margin-top:22px; }
.question-comment-field .field-label { margin:0 0 8px; color:#314558; font-size:.94rem; }
.question-comment-textarea { min-height:92px; max-height:140px; resize:vertical; background:rgba(255,255,255,.62); backdrop-filter:blur(8px); }
.question-comment-field .field-note { margin:6px 0 0; font-size:.75rem; line-height:1.35; }
.question-comment-field + .question-options { margin-top:20px; }
@media (max-width:780px) {
  .question-comment-field { margin-top:17px; }
  .question-comment-textarea { min-height:78px; max-height:116px; padding:10px 11px; font-size:.88rem; }
  .question-comment-field .field-note { font-size:.68rem; }
  .question-comment-field + .question-options { margin-top:16px; }
}
