
#vb-questionnaire{
 color-scheme:light dark;
 --q-bg:light-dark(#f1f4ef,#101d17);
 --q-paper:light-dark(#ffffff,#1a2921);
 --q-field-bg:light-dark(#f8faf7,#1e3026);
 --q-ink:light-dark(#183b2e,#eef5ee);
 --q-sub:light-dark(#52665b,#b6cabb);
 --q-edge:light-dark(#d3dfd5,#415b49);
 --q-control-edge:light-dark(#829486,#789882);
 --q-green:light-dark(#164c36,#acd9b8);
 --q-deep:light-dark(#10382b,#0c2b20);
 --q-on:light-dark(#f7faf5,#f4f8f1);
 --q-gold:light-dark(#d9bf85,#dec797);
 --q-soft:light-dark(#eaf2e9,#263e2e);
 --q-shadow:light-dark(rgb(14 47 32 / 6%),rgb(0 0 0 / 16%));
 font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 color:var(--q-ink);-webkit-font-smoothing:antialiased;
}
#vb-questionnaire *{box-sizing:border-box}
#vb-questionnaire [hidden]{display:none!important}
#vb-questionnaire .q-page{background:var(--q-bg);border:1px solid var(--q-edge);border-radius:22px;overflow:hidden}
#vb-questionnaire .q-page > header{padding:30px 96px 29px 30px;background:radial-gradient(ellipse at 100% 0%,color-mix(in srgb,var(--q-gold) 9%,transparent),transparent 68%),var(--q-deep);color:var(--q-on);border-bottom:2px solid var(--q-gold)}
#vb-questionnaire .q-heading{display:flex;align-items:flex-start;gap:18px}
#vb-questionnaire .q-heading-copy{min-width:0;max-width:560px}
#vb-questionnaire .q-brand{margin:0;display:block;font-size:29px;font-weight:700;line-height:1.2;letter-spacing:-.7px;text-wrap:balance}
#vb-questionnaire .q-page > header small{display:block;color:var(--q-gold);font-size:14px;font-weight:400;line-height:1.55;letter-spacing:.05px;margin-top:9px}
#vb-questionnaire .q-heading-symbol{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:47px;height:47px;border:1px solid color-mix(in srgb,var(--q-gold) 32%,transparent);border-radius:14px;background:color-mix(in srgb,var(--q-gold) 8%,var(--q-deep));color:var(--q-gold)}
#vb-questionnaire .q-heading-symbol svg,#vb-questionnaire .q-heading-symbol i{width:25px;height:25px;flex-shrink:0}
#vb-questionnaire .q-content{padding:25px 28px 22px;max-width:740px;margin:auto}
#vb-questionnaire .q-demo{font-size:12px;line-height:1.5;color:var(--q-sub);margin-bottom:18px;max-width:590px}
#vb-questionnaire .q-section{font-size:12px;font-weight:500;letter-spacing:.25px;color:var(--q-sub)}
#vb-questionnaire .q-progress{height:5px;border-radius:5px;background:var(--q-edge);overflow:hidden;margin:9px 0 23px}
#vb-questionnaire .q-progress>span{height:100%;display:block;border-radius:5px;background:var(--q-green);transition:width 180ms ease}
#vb-questionnaire .q-panel{background:var(--q-paper);padding:27px;border:1px solid var(--q-edge);border-radius:17px;box-shadow:0 6px 24px var(--q-shadow)}
#vb-questionnaire .q-required-note{font-size:12px;color:var(--q-sub);margin-bottom:19px}
#vb-questionnaire h2{font-size:23px;line-height:1.25;font-weight:700;letter-spacing:-.4px;margin:0 0 11px}
#vb-questionnaire p{margin:0 0 20px}
#vb-questionnaire .q-hint{font-size:13px;line-height:1.6;color:var(--q-sub)}
#vb-questionnaire .q-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 18px}
#vb-questionnaire .q-field{display:flex;flex-direction:column;gap:9px;margin:0 0 23px;min-width:0}
#vb-questionnaire .q-grid .q-field{margin:0}
#vb-questionnaire label,#vb-questionnaire legend{font-size:14px;font-weight:500;line-height:1.5;letter-spacing:.02px}
#vb-questionnaire input:not([type=checkbox]):not([type=radio]),#vb-questionnaire select,#vb-questionnaire textarea{font:inherit;font-size:16px;line-height:1.4;color:var(--q-ink);background:var(--q-field-bg);border:1px solid var(--q-control-edge);border-radius:10px;padding:13px 14px;width:100%;min-width:0;min-height:50px;transition:border-color 140ms ease,background-color 140ms ease,box-shadow 140ms ease}
#vb-questionnaire input::placeholder,#vb-questionnaire textarea::placeholder{color:var(--q-sub);opacity:1;font-size:14px}
#vb-questionnaire select{padding-right:10px}
#vb-questionnaire textarea{resize:vertical;min-height:108px;line-height:1.6}
#vb-questionnaire select[name="medication"]:invalid{color:var(--q-sub)}
#vb-questionnaire select option{color:var(--q-ink);background:var(--q-paper)}
#vb-questionnaire input:not([type=checkbox]):not([type=radio]):focus-visible,#vb-questionnaire select:focus-visible,#vb-questionnaire textarea:focus-visible{background-color:var(--q-paper);border-color:var(--q-green);outline:2px solid var(--q-green);outline-offset:2px;box-shadow:0 0 0 5px var(--q-soft)}
#vb-questionnaire .q-label-line{display:flex;align-items:flex-start;gap:9px}
#vb-questionnaire .q-label-line>span{min-width:0}
#vb-questionnaire .q-label-line svg,#vb-questionnaire .q-label-line i{width:18px;height:18px;flex-shrink:0;margin-top:1px;color:var(--q-green)}
#vb-questionnaire fieldset{padding:0;border:0;margin:23px 0}
#vb-questionnaire legend{margin-bottom:12px;padding:0}
#vb-questionnaire .q-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
#vb-questionnaire .q-choice{display:flex;align-items:center;gap:10px;min-height:47px;font-weight:400;padding:10px 12px;border:1px solid var(--q-control-edge);border-radius:10px;background:var(--q-field-bg);transition:border-color 140ms ease,background-color 140ms ease}
#vb-questionnaire .q-choice:has(input:checked){background:var(--q-soft);border-color:var(--q-green);font-weight:500}
#vb-questionnaire .q-choice:has(input:focus-visible){outline:2px solid var(--q-green);outline-offset:2px}
#vb-questionnaire input[type=checkbox]{width:18px;height:18px;margin:0;flex-shrink:0;accent-color:var(--q-green)}
#vb-questionnaire .q-subsection{padding-top:23px;border-top:1px solid var(--q-edge);margin-top:23px}
#vb-questionnaire .q-note{background:var(--q-soft);border-left:2px solid var(--q-green);padding:14px 16px;border-radius:0 9px 9px 0;font-size:13px;line-height:1.65;margin:19px 0 23px}
#vb-questionnaire .q-nav{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap;margin-top:26px;padding-top:20px;border-top:1px solid var(--q-edge)}
#vb-questionnaire button{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:inherit;font-size:14px;font-weight:500;line-height:1.4;border-radius:10px;border:1px solid var(--q-edge);background:var(--q-paper);color:var(--q-ink);padding:13px 17px;min-height:48px;transition:background-color 140ms ease,border-color 140ms ease,box-shadow 140ms ease}
#vb-questionnaire button svg,#vb-questionnaire button i{width:17px;height:17px;flex-shrink:0}
#vb-questionnaire button.q-primary{background:var(--q-deep);color:var(--q-on);border-color:var(--q-deep);padding-left:21px;padding-right:19px;min-width:145px;margin-left:auto}
#vb-questionnaire button[data-example]{font-size:12px;color:var(--q-sub);background:transparent;border-color:transparent;padding-left:0;padding-right:0}
#vb-questionnaire button[data-back]{background:transparent;border-color:transparent;padding-left:0}
#vb-questionnaire button:focus-visible{outline:2px solid var(--q-green);outline-offset:3px}
#vb-questionnaire .q-error{display:flex;align-items:flex-start;gap:12px;font-size:16px;font-weight:600;line-height:1.55;color:light-dark(#842d32,#ffd8d8);background:light-dark(#fff0ee,#3c2023);padding:17px 18px;border:1px solid light-dark(#ba5359,#da8a8f);border-left-width:4px;margin-top:18px;border-radius:10px}
#vb-questionnaire .q-error::before{content:"";display:block;flex:0 0 24px;width:24px;height:24px;margin-top:1px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M12 7v6' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='17' r='1'/%3E%3C/svg%3E") center/contain no-repeat}
#vb-questionnaire footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--q-sub);font-size:11px;margin-top:20px;padding:0 3px;line-height:1.5}
#vb-questionnaire footer strong{font-weight:700;color:var(--q-green)}
#vb-questionnaire .q-result{padding:18px 0;border-bottom:1px solid var(--q-edge);font-size:14px}
#vb-questionnaire .q-result strong{display:block;font-size:28px;font-weight:700;letter-spacing:-.5px;color:var(--q-green);margin:5px 0;font-variant-numeric:tabular-nums}
@media(hover:hover){
 #vb-questionnaire .q-choice:hover{border-color:var(--q-green)}
 #vb-questionnaire button.q-primary:hover{background:color-mix(in srgb,var(--q-deep) 87%,var(--q-green));box-shadow:0 3px 10px var(--q-shadow)}
 #vb-questionnaire input:not([type=checkbox]):not([type=radio]):hover,#vb-questionnaire select:hover,#vb-questionnaire textarea:hover{border-color:color-mix(in srgb,var(--q-green) 55%,var(--q-edge))}
}
@media(max-width:540px){
 #vb-questionnaire .q-page{border-radius:17px}
 #vb-questionnaire .q-page > header{padding:24px 72px 24px 20px}
 #vb-questionnaire .q-brand{font-size:26px;letter-spacing:-.5px}
 #vb-questionnaire .q-heading{gap:12px}
 #vb-questionnaire .q-heading-symbol{width:38px;height:38px;border-radius:11px}
 #vb-questionnaire .q-heading-symbol svg,#vb-questionnaire .q-heading-symbol i{width:23px;height:23px}
 #vb-questionnaire .q-page > header small{font-size:13px;margin-top:7px}
 #vb-questionnaire .q-content{padding:20px 15px 18px}
 #vb-questionnaire .q-panel{padding:21px 18px;border-radius:13px}
 #vb-questionnaire .q-grid{grid-template-columns:1fr;gap:20px}
 #vb-questionnaire .q-nav{gap:9px}
 #vb-questionnaire button.q-primary{flex-grow:1;min-width:140px}
 #vb-questionnaire button[data-example]{padding-right:6px}
}
@media(max-width:390px){
 #vb-questionnaire .q-page > header{padding-left:17px}
 #vb-questionnaire .q-brand{font-size:24px}
 #vb-questionnaire .q-heading{gap:10px}
 #vb-questionnaire .q-heading-symbol{width:32px;height:32px;border-radius:9px}
 #vb-questionnaire .q-heading-symbol svg,#vb-questionnaire .q-heading-symbol i{width:21px;height:21px}
 #vb-questionnaire .q-choices{grid-template-columns:1fr}
 #vb-questionnaire .q-panel{padding:20px 15px}
 #vb-questionnaire button[data-example]{width:100%;justify-content:flex-start;order:2}
}
@media(prefers-reduced-motion:reduce){#vb-questionnaire *{transition:none!important}}

/* WordPress integration: isolate the preview controls from theme defaults. */
#vb-questionnaire { width: 100%; max-width: 960px; margin: 24px auto; position: relative; }
#vb-questionnaire .q-panel { display: block; }
#vb-questionnaire fieldset[data-vb-runtime] { margin: 0; padding: 0; min-width: 0; }
#vb-questionnaire button { cursor: pointer; text-transform: none; letter-spacing: normal; }
#vb-questionnaire button:disabled { cursor: wait; }
#vb-questionnaire label { color: inherit; }
#vb-questionnaire .screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

/* First-page coach identity, before the person's contact fields. */
#vb-questionnaire .q-coach-card {
 display: flex; align-items: flex-start; gap: 18px; padding: 23px; margin: 0 0 26px;
 background: var(--q-deep); color: #f4f8f1; border: 1px solid #526d4e;
 border-left: 3px solid var(--q-gold); border-radius: 14px;
}
#vb-questionnaire .q-coach-avatar {
 display: flex; justify-content: center; align-items: center; width: 52px; height: 52px;
 flex-shrink: 0; border: 1px solid #6c7957; border-radius: 50%; color: var(--q-gold);
 font-size: 19px; font-weight: 600; background: #ffffff08;
}
#vb-questionnaire .q-coach-copy { min-width: 0; }
#vb-questionnaire .q-coach-card p { margin: 0; }
#vb-questionnaire .q-coach-card .q-coach-label { font-size: 13px; color: var(--q-gold); margin-bottom: 4px; }
#vb-questionnaire .q-coach-name { display: block; font-size: 25px; line-height: 1.3; font-weight: 700; color: #f4f8f1; overflow-wrap: anywhere; }
#vb-questionnaire .q-coach-card .q-coach-phone { margin-top: 9px; font-size: 15px; color: #f4f8f1; }
#vb-questionnaire .q-coach-phone span { font-size: 17px; font-weight: 600; font-variant-numeric: tabular-nums; }
#vb-questionnaire .q-coach-card .q-coach-example { font-size: 11px; color: #b6cabb; margin-top: 4px; }
#vb-questionnaire .q-coach-card .q-coach-description { font-size: 13px; color: #b6cabb; margin-top: 12px; }
@media(max-width:540px) {
 #vb-questionnaire .q-coach-card { padding: 18px 15px; gap: 13px; }
 #vb-questionnaire .q-coach-avatar { width: 40px; height: 40px; font-size: 15px; }
 #vb-questionnaire .q-coach-name { font-size: 22px; }
}

/* Two large, mutually exclusive water-unit choices with native keyboard support. */
#vb-questionnaire .q-water-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
#vb-questionnaire .q-water-choice {
 position: relative; display: flex; align-items: center; gap: 14px; min-height: 96px;
 padding: 18px; background: var(--q-field-bg); border: 1px solid var(--q-control-edge);
 border-radius: 12px; cursor: pointer; transition: background-color 140ms ease, border-color 140ms ease;
}
#vb-questionnaire .q-water-choice strong { display: block; color: var(--q-ink); font-size: 17px; font-weight: 600; }
#vb-questionnaire .q-water-choice .q-hint { display: block; margin-top: 3px; }
#vb-questionnaire .q-water-choice:has(input:checked) { border: 2px solid var(--q-green); padding: 17px; background: var(--q-soft); }
#vb-questionnaire .q-water-choice:has(input:focus-visible),
#vb-questionnaire .q-water-unknown:has(input:focus-visible) { outline: 2px solid var(--q-green); outline-offset: 3px; }
#vb-questionnaire input[type=radio] { width: 20px; height: 20px; min-height: 0; margin: 0; padding: 0; flex-shrink: 0; accent-color: var(--q-green); }
#vb-questionnaire .q-water-unknown { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin-top: 10px; cursor: pointer; color: var(--q-sub); }
@media(max-width:540px) {
 #vb-questionnaire .q-water-options { grid-template-columns: 1fr; gap: 10px; }
 #vb-questionnaire .q-water-choice { min-height: 82px; }
}

/* Uniform controls, including native macOS dropdowns. */
#vb-questionnaire input:not([type=checkbox]):not([type=radio]),
#vb-questionnaire select { min-height: 52px; height: 52px; }
#vb-questionnaire select {
 -webkit-appearance: none;
 appearance: none;
 padding: 12px 42px 12px 14px;
 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10'%3E%3Cpath d='m2 2 6 6 6-6' fill='none' stroke='%23718578' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 background-repeat: no-repeat;
 background-position: right 15px center;
 background-size: 14px 9px;
}
#vb-questionnaire {
 --q-action-bg: light-dark(#10382b, #d9bf85);
 --q-action-ink: light-dark(#f7faf5, #132b20);
 --q-action-hover: light-dark(#194d39, #e4cfa2);
}
#vb-questionnaire button.q-primary {
 background: var(--q-action-bg);
 color: var(--q-action-ink);
 border-color: var(--q-action-bg);
}
#vb-questionnaire [data-multi="obstacles"] .q-choice { align-items: flex-start; line-height: 1.55; }
#vb-questionnaire [data-multi="obstacles"] input { margin-top: 3px; }
#vb-questionnaire [data-multi="obstacles"] .q-hint { margin-bottom: 12px; }
@media(hover:hover) {
 #vb-questionnaire button.q-primary:hover { background: var(--q-action-hover); border-color: var(--q-action-hover); }
}
@media(max-width:540px) {
 #vb-questionnaire [data-multi="obstacles"] .q-choices { grid-template-columns: 1fr; }
}

/* Full-page assessment: full-width band, readable centered question panel. */
body.vbpro-preview-page {
 color-scheme: light dark;
 margin: 0 !important;
 padding: 0 !important;
 background: light-dark(#f1f4ef, #101d17);
 --vbpro-admin-height: 0px;
}
body.vbpro-preview-page.admin-bar { --vbpro-admin-height: 32px; }
body.vbpro-preview-page #vbpro-main { width: 100%; max-width: none; margin: 0; padding: 0; }
body.vbpro-preview-page #vb-questionnaire { width: 100%; max-width: none; margin: 0; }
body.vbpro-preview-page #vb-questionnaire .q-page {
 width: 100%; border: 0; border-radius: 0; min-height: calc(100svh - var(--vbpro-admin-height));
}
body.vbpro-preview-page #vb-questionnaire .q-page > header { padding: 30px 24px 28px; }
body.vbpro-preview-page #vb-questionnaire .q-heading { max-width: 900px; margin: 0 auto; }
body.vbpro-preview-page #vb-questionnaire .q-content { width: 100%; max-width: 820px; margin: 0 auto; padding: 30px 24px 32px; }
@media(max-width:782px) {
 body.vbpro-preview-page.admin-bar { --vbpro-admin-height: 46px; }
}
@media(max-width:540px) {
 body.vbpro-preview-page #vb-questionnaire .q-page > header { padding: 24px 20px; }
 body.vbpro-preview-page #vb-questionnaire .q-content { padding: 22px 15px 26px; }
}

#vb-questionnaire .q-nutrition{margin:20px 0;padding:16px;border:1px solid var(--q-edge);border-radius:12px}
#vb-questionnaire .q-nutrition summary{cursor:pointer;font-weight:700;margin-bottom:12px}
#vb-questionnaire .q-food-row{padding:14px 0;margin-bottom:12px;border-bottom:1px solid var(--q-edge)}
#vb-questionnaire .q-food-remove{font-size:13px;padding:8px 12px;margin-top:10px}
#vb-questionnaire [data-add-food]{margin-bottom:18px}

/* Native single-choice controls styled as large selectable buttons. */
#vb-questionnaire fieldset.q-single { min-width:0; margin:22px 0; }
#vb-questionnaire .q-grid > fieldset.q-single { margin:0; }
#vb-questionnaire .q-single legend { width:100%; }
#vb-questionnaire .q-single-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; }
#vb-questionnaire .q-single-choice { display:flex; align-items:center; justify-content:flex-start; gap:12px; min-height:68px; padding:15px; border:2px solid var(--q-control-edge); border-radius:12px; background:var(--q-field-bg); cursor:pointer; }
#vb-questionnaire .q-single-choice > span { min-width:0; overflow-wrap:break-word; }
#vb-questionnaire .q-single-choice:has(input:checked) { background:var(--q-soft); border-color:var(--q-green); font-weight:700; }
#vb-questionnaire .q-single-choice:has(input:focus-visible) { outline:3px solid var(--q-green); outline-offset:3px; }
#vb-questionnaire .q-single-options.q-rating { grid-template-columns:repeat(5,minmax(0,1fr)); }
#vb-questionnaire .q-rating .q-single-choice { flex-direction:column; justify-content:center; text-align:center; padding:12px 5px; font-size:13px; }
#vb-questionnaire .q-measures-heading { margin-top:26px; margin-bottom:18px; }
#vb-questionnaire .q-measures-heading h3 { font-size:21px; font-weight:700; margin:0 0 8px; color:var(--q-ink); }
@media(max-width:540px) { #vb-questionnaire .q-single-options { grid-template-columns:1fr; } #vb-questionnaire [data-single="sex"] .q-single-options { grid-template-columns:repeat(2,minmax(0,1fr)); } #vb-questionnaire .q-single-choice { min-height:64px; } #vb-questionnaire .q-rating .q-single-choice { font-size:12px; gap:8px; padding:12px 3px; } }

/* Questions have a stronger hierarchy than answer choices. */
#vb-questionnaire .q-field,
#vb-questionnaire legend { font-size:18px; font-weight:750; line-height:1.45; }
#vb-questionnaire legend { margin-bottom:16px; }
#vb-questionnaire .q-field { gap:12px; }
#vb-questionnaire .q-field input,
#vb-questionnaire .q-field select,
#vb-questionnaire .q-field textarea { font-weight:400; }
#vb-questionnaire .q-choice,
#vb-questionnaire .q-single-choice { font-size:15px; font-weight:400; }
#vb-questionnaire .q-choice:has(input:checked),
#vb-questionnaire .q-single-choice:has(input:checked) { font-weight:600; }
#vb-questionnaire [data-single="activity"] { grid-column:1/-1; }
#vb-questionnaire [data-single="activity"] .q-single-options { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media(max-width:540px) { #vb-questionnaire .q-field, #vb-questionnaire legend { font-size:17px; } #vb-questionnaire [data-single="activity"] .q-single-options { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Rest and biological sex span the full card, each with two equal columns. */
#vb-questionnaire [data-single="rest"],
#vb-questionnaire [data-single="sex"] { grid-column:1/-1; width:100%; }
#vb-questionnaire [data-single="rest"] .q-single-options,
#vb-questionnaire [data-single="sex"] .q-single-options { grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }

/* Inline validation replaces unstyleable browser bubbles. */
#vb-questionnaire .q-field-error { display:flex; width:100%; margin-top:9px; font-size:14px; font-weight:600; }
#vb-questionnaire input[aria-invalid="true"],
#vb-questionnaire select[aria-invalid="true"],
#vb-questionnaire textarea[aria-invalid="true"] { border-color:light-dark(#ba5359,#da8a8f); outline:2px solid light-dark(#ba5359,#da8a8f); outline-offset:2px; box-shadow:none; }
#vb-questionnaire .q-single-choice:has(input[aria-invalid="true"]),
#vb-questionnaire .q-choice:has(input[aria-invalid="true"]),
#vb-questionnaire .q-water-choice:has(input[aria-invalid="true"]) { border-color:light-dark(#ba5359,#da8a8f); }

#vb-questionnaire .q-quick-protein { margin:24px 0; padding:20px; border:1px solid var(--q-edge); border-radius:14px; background:var(--q-soft); }
#vb-questionnaire .q-quick-protein h3 { font-size:20px; font-weight:700; margin:0 0 12px; }
#vb-questionnaire .q-quick-protein .q-single-options { grid-template-columns:1fr; }

#vb-questionnaire .q-average-protein { margin:12px 0 22px; }
#vb-questionnaire .q-average-protein > p { margin-bottom:6px; }
#vb-questionnaire .q-average-protein summary { font-size:13px; color:var(--q-sub); cursor:pointer; }
#vb-questionnaire .q-average-protein details[open] summary { margin-bottom:14px; }

/* Italian meal buttons: local decorative vectors, text remains the accessible label. */
#vb-questionnaire .q-food-options { grid-template-columns:repeat(3,minmax(0,1fr)); }
#vb-questionnaire .q-food-choice { display:flex; align-items:center; gap:10px; min-width:0; }
#vb-questionnaire .q-food-choice svg { width:30px; height:30px; flex:0 0 30px; color:var(--q-green); }
#vb-questionnaire .q-food-choice span { overflow-wrap:anywhere; }
#vb-questionnaire [data-more-food] { margin:16px 0; }
#vb-questionnaire .q-food-summary { padding:14px; border:1px solid var(--q-edge); border-radius:10px; background:var(--q-soft); overflow-wrap:anywhere; }
#vb-questionnaire [data-single="meal_cost"] .q-single-options { grid-template-columns:repeat(3,minmax(0,1fr)); }
#vb-questionnaire [data-single="activity_duration"] .q-single-options,
#vb-questionnaire [data-single="activity_intensity"] .q-single-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:600px){#vb-questionnaire .q-food-options{grid-template-columns:repeat(2,minmax(0,1fr));}#vb-questionnaire .q-food-choice{padding:12px 9px;gap:7px;}#vb-questionnaire .q-food-choice svg{width:24px;height:24px;flex-basis:24px;}}
@media(max-width:360px){#vb-questionnaire .q-food-options{grid-template-columns:1fr;}}
#vb-questionnaire [data-single="meal_cost"] .q-single-choice{flex-direction:column;justify-content:center;text-align:center;gap:6px;padding:10px 6px;}

/* Food days: selected foods only; native radios with compact, touch-sized labels. */
#vb-questionnaire .q-food-frequency { min-width:0; padding:14px; border:1px solid var(--q-edge); border-radius:12px; }
#vb-questionnaire .q-food-frequency legend { padding:0 5px; }
#vb-questionnaire .q-food-frequency .q-reference { margin:0 0 10px; }
#vb-questionnaire .q-frequency-options { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
#vb-questionnaire .q-frequency-options label { position:relative; display:flex; justify-content:center; align-items:center; min-height:44px; border:2px solid var(--q-control-edge); border-radius:9px; background:var(--q-field-bg); cursor:pointer; }
#vb-questionnaire .q-frequency-options input[type=radio] { position:absolute; opacity:0; width:1px; height:1px; }
#vb-questionnaire .q-frequency-options label:has(input:checked) { background:var(--q-soft); border-color:var(--q-green); font-weight:700; }
#vb-questionnaire .q-frequency-options label:has(input:focus-visible) { outline:3px solid var(--q-green); outline-offset:2px; }
#vb-questionnaire .q-frequency-options label:has(input:disabled) { opacity:.4; cursor:default; }
@media(max-width:480px){#vb-questionnaire .q-frequency-options{grid-template-columns:repeat(4,minmax(0,1fr));}}

/* Food choices are always visible, grouped and alphabetical. */
#vb-questionnaire .q-food-group-title{font-size:20px;font-weight:700;margin:24px 0 12px;color:var(--q-ink)}
#vb-questionnaire .q-food-other{display:grid;gap:16px;margin-top:9px;min-width:0}
#vb-questionnaire [data-protein-overlap]{margin:20px 0;padding:18px;border:1px solid currentColor;border-radius:12px}
#vb-questionnaire [data-protein-overlap][hidden]{display:none}

/* Unified lunch/dinner drinks and a visible reminder before the yes/no choice. */
#vb-questionnaire .q-water-notice{font-size:17px;font-weight:600;line-height:1.55;color:#f5f8ef;background:#173b2e;border:1px solid #dfc58d;border-left:4px solid #dfc58d;border-radius:10px;padding:16px 18px;margin:12px 0 20px}
#vb-questionnaire .q-drink-section{margin-bottom:24px}
#vb-questionnaire .q-drink-detail{border:1px solid var(--q-edge);border-radius:12px;padding:16px;margin:18px 0}
#vb-questionnaire .q-drink-detail[hidden]{display:none}
#vb-questionnaire .q-coach-support{display:block;width:86%;height:86%;object-fit:contain}
@media(max-width:540px){#vb-questionnaire .q-water-notice{font-size:16px;padding:14px}#vb-questionnaire .q-drink-detail{padding:12px}}

#vb-questionnaire .q-drink-detail [data-single^="drink_days_"] .q-single-options{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
#vb-questionnaire .q-drink-detail [data-single^="drink_days_"] .q-single-choice{padding:8px 4px;min-height:48px;justify-content:center}
#vb-questionnaire .q-drink-detail [data-single^="drink_amount_"] .q-single-options{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:540px){#vb-questionnaire .q-drink-detail [data-single^="drink_days_"] .q-single-options{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Occasional meal days and small decorative sports glyphs. */
#vb-questionnaire [data-single="meal_frequency"] .q-single-options{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
#vb-questionnaire [data-single="meal_frequency"] .q-single-choice{justify-content:center;min-height:52px;padding:10px 5px;gap:7px}
#vb-questionnaire .q-sport-choice{gap:10px}
#vb-questionnaire .q-sport-icon{width:24px;height:24px;flex:0 0 24px;color:var(--q-green)}
#vb-questionnaire .q-sport-choice>span{min-width:0;overflow-wrap:break-word}
@media(max-width:540px){#vb-questionnaire [data-single="meal_frequency"] .q-single-options{grid-template-columns:repeat(4,minmax(0,1fr))}#vb-questionnaire .q-sport-icon{width:22px;height:22px;flex-basis:22px}}

#vb-questionnaire .q-coach-avatar .q-coach-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:50%}

/* Large personal portrait: keep the hands fallback unchanged. */
#vb-questionnaire .q-coach-card:has(.q-coach-photo){display:grid;grid-template-columns:minmax(160px,23%) minmax(0,1fr);align-items:center;gap:28px}
#vb-questionnaire .q-coach-card:has(.q-coach-photo) .q-coach-avatar{position:relative;display:block;width:100%;height:auto;aspect-ratio:1;border-width:2px;overflow:hidden;align-self:center}
#vb-questionnaire .q-coach-card:has(.q-coach-photo) .q-coach-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
@media(max-width:680px){
 #vb-questionnaire .q-coach-card:has(.q-coach-photo){grid-template-columns:minmax(0,1fr);gap:18px}
 #vb-questionnaire .q-coach-card:has(.q-coach-photo) .q-coach-avatar{width:140px;justify-self:center}
}

/* Final results: same portrait proportions as the welcome card, UI only. */
#vb-questionnaire #vb-results .coach-title:has(.coach-result-photo){display:grid;grid-template-columns:minmax(160px,23%) minmax(0,1fr);align-items:center;gap:28px}
#vb-questionnaire #vb-results .coach-title:has(.coach-result-photo)>div{min-width:0;overflow-wrap:anywhere}
#vb-questionnaire #vb-results .has-coach-photo{position:relative;display:block;width:100%;height:auto;aspect-ratio:1;border-width:2px;overflow:hidden;align-self:center}
#vb-questionnaire #vb-results .coach-result-photo{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:50%}
@media(max-width:680px){
 #vb-questionnaire #vb-results .coach-title:has(.coach-result-photo){grid-template-columns:minmax(0,1fr);gap:18px}
 #vb-questionnaire #vb-results .has-coach-photo{width:140px;justify-self:center}
}
/* Privacy elements are confined to the assessment page. */
#vb-questionnaire .q-privacy-gate{margin:24px 0}
#vb-questionnaire .q-privacy-gate .q-choice{align-items:flex-start;margin:20px 0;line-height:1.55}
#vb-questionnaire .q-privacy-gate input[type=checkbox]{flex:0 0 auto;margin-top:4px}
#vb-questionnaire .q-privacy-gate .q-primary{margin-top:12px}
#vb-questionnaire .q-privacy-footer{margin:18px 0;text-align:center;font-size:14px}
#vb-questionnaire .q-privacy-link{color:var(--q-ink,#234a37);text-decoration:underline;overflow-wrap:anywhere}

/* Coach introduction precedes the consent heading without changing card styling. */
#vb-questionnaire .q-privacy-gate>.q-coach-card{margin-bottom:28px;}
#vb-questionnaire .q-privacy-gate>#vbpro-privacy-heading{margin-top:0;}

#vb-questionnaire .q-privacy-gate .q-privacy-welcome{max-width:820px;margin:0 auto 26px;text-align:center;font-size:clamp(16px,1.6vw,21px);font-weight:600;line-height:1.4;color:var(--q-ink);text-wrap:balance;}

/* Bundled SIL Open Font License font: no third-party font service. */
@font-face{font-family:"VBPro Lora";src:url("fonts/Lora-Italic.ttf") format("truetype");font-style:italic;font-weight:400 700;font-display:swap}
#vb-questionnaire .q-privacy-gate .q-privacy-welcome{font-family:"VBPro Lora",serif;font-style:italic;font-weight:500;font-synthesis:none;font-size:clamp(21px,2.2vw,29px);line-height:1.45;letter-spacing:0;text-wrap:balance}
