:root {
  --bg:#edf0eb;
  --surface:#ffffff;
  --surface-soft:#f5f7f3;
  --text:#20261f;
  --muted:#667066;
  --line:#d6dbd2;
  --brand:#44533f;
  --brand-dark:#2d382a;
  --brand-soft:#e8ede5;
  --accent:#9a7c2c;
  --success:#28734c;
  --success-soft:#e8f4ed;
  --danger:#a23f43;
  --danger-soft:#f8e9ea;
  --warning:#7a6421;
  --warning-soft:#fff7dc;
  --shadow:0 14px 36px rgba(29,38,28,.09);
}

*{box-sizing:border-box}
html{min-height:100%;background:var(--bg);scroll-behavior:smooth}
body{min-height:100dvh;margin:0;color:var(--text);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
button,input,textarea,select{font:inherit}
.survey-container{max-width:940px}

.site-header{height:60px;position:sticky;top:0;z-index:1030;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(10px)}
.site-header>.container{height:60px}
.brand{display:inline-flex;align-items:center;gap:.65rem;min-width:0;color:var(--text);text-decoration:none}
.brand-logo{width:2.25rem;height:2.25rem;flex:0 0 auto;object-fit:contain}
.brand span{display:flex;min-width:0;flex-direction:column;line-height:1.05}
.brand strong{overflow:hidden;font-size:.9rem;letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap}
.brand small{margin-top:.18rem;color:var(--muted);font-size:.68rem}
.header-actions{display:flex;align-items:center;gap:.45rem}
.language-nav{display:flex;gap:.14rem;padding:.18rem;border:1px solid var(--line);border-radius:.65rem;background:var(--surface-soft)}
.language-nav a{min-width:36px;padding:.3rem .42rem;border-radius:.48rem;color:var(--muted);font-size:.75rem;font-weight:850;text-align:center;text-decoration:none}
.language-nav a.active{color:#fff;background:var(--brand)}
.event-menu{position:relative}
.event-menu summary{padding:.42rem .65rem;border:1px solid var(--line);border-radius:.6rem;background:#fff;color:var(--muted);font-size:.73rem;font-weight:800;cursor:pointer;list-style:none}
.event-menu summary::-webkit-details-marker{display:none}
.event-menu-list{position:absolute;top:calc(100% + .4rem);right:0;min-width:220px;padding:.35rem;border:1px solid var(--line);border-radius:.72rem;background:#fff;box-shadow:var(--shadow)}
.event-menu-list a{display:block;padding:.55rem .65rem;border-radius:.5rem;color:var(--text);font-size:.8rem;text-decoration:none}
.event-menu-list a:hover{background:var(--brand-soft)}
.mobile-event-selector{display:none}

.card,.intro-card,.section-card,.result-card,.stats-panel{border-radius:1rem;box-shadow:var(--shadow)!important}
.btn{min-height:44px;border-radius:.7rem;font-weight:780}
.btn-lg{min-height:51px}
.btn-primary{--bs-btn-bg:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:var(--brand-dark);--bs-btn-hover-border-color:var(--brand-dark);--bs-btn-active-bg:var(--brand-dark);--bs-btn-active-border-color:var(--brand-dark);--bs-btn-disabled-bg:var(--brand);--bs-btn-disabled-border-color:var(--brand)}
.btn-outline-primary{--bs-btn-color:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:var(--brand);--bs-btn-hover-border-color:var(--brand)}
.btn-outline-secondary{--bs-btn-color:#505a50;--bs-btn-border-color:#b8c0b5;--bs-btn-hover-bg:#505a50;--bs-btn-hover-border-color:#505a50}
.form-label{font-size:.85rem;font-weight:780}
.form-control,.form-select{border-color:#b9c1b6;border-radius:.7rem;color:var(--text)}
.form-control:focus,.form-select:focus{border-color:var(--brand);box-shadow:0 0 0 .2rem rgba(68,83,63,.14)}
textarea.form-control{min-height:118px;resize:vertical;line-height:1.45}
.alert{border-radius:.75rem}
.setup-warning{font-size:.82rem}
.eyebrow{color:#d2b956;font-size:.7rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.eyebrow.dark{color:var(--warning)}

.intro-card{max-width:790px;overflow:hidden}
.intro-brand-panel{display:grid;grid-template-columns:8rem minmax(0,1fr);align-items:center;gap:1.25rem;padding:1.2rem 1.4rem;border-bottom:1px solid var(--line);background:#fff}
.intro-logo{width:8rem;height:8rem;max-width:100%;object-fit:contain}
.intro-heading-copy{min-width:0}
.intro-heading-copy .eyebrow{display:block;color:var(--warning)}
.intro-heading-copy h1{margin:.28rem 0 .42rem;color:var(--text);font-size:clamp(1.42rem,4vw,2.15rem);font-weight:880;line-height:1.08;letter-spacing:-.025em}
.intro-heading-copy p{margin:0;color:#596359;font-size:.94rem;line-height:1.45}
.intro-facts{display:grid;gap:.7rem;padding-top:1rem;border-top:1px solid var(--line)}
.intro-facts>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.35rem 1rem;color:var(--muted);font-size:.78rem}
.intro-facts>div strong{color:var(--text)}
.intro-facts p{margin:0;padding:.75rem .8rem;border:1px solid #dfd19b;border-radius:.7rem;background:var(--warning-soft);color:#5c5027;font-size:.78rem;line-height:1.42}

.feedback-shell{max-width:880px;margin:0 auto}
.survey-topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.5rem}
.player-summary{display:flex;min-width:0;flex-direction:column;line-height:1.2}
.player-summary span{color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.player-summary strong{margin-top:.15rem;font-size:.87rem}
.player-summary small{margin-top:.16rem;color:var(--muted);font-size:.7rem}
.step-summary{flex:0 0 auto;color:var(--muted);font-size:.82rem}
.step-summary strong{color:var(--text);font-size:1rem}
.survey-progress{height:7px;margin-bottom:.8rem;border-radius:999px;background:#d6dbd2}
.survey-progress .progress-bar{border-radius:inherit;background:var(--brand);transition:width .2s ease}
.survey-step{display:block;margin-bottom:.8rem}
.js .survey-step{display:none}
.js .survey-step.active{display:block;animation:surveyAppear .16s ease-out}
@keyframes surveyAppear{from{opacity:.55;transform:translateY(4px)}to{opacity:1;transform:none}}
.section-card{overflow:hidden}
.section-heading{margin:-.1rem -.1rem .2rem;padding:.2rem .1rem 1rem;border-bottom:1px solid var(--line)}
.section-heading>span{display:block;margin-bottom:.25rem;color:var(--accent);font-size:.68rem;font-weight:880;letter-spacing:.08em;text-transform:uppercase}
.section-heading h1{margin:0 0 .35rem;font-size:clamp(1.3rem,3vw,1.75rem);font-weight:850;letter-spacing:-.02em}
.section-heading p{max-width:720px;margin:0;color:var(--muted);font-size:.86rem;line-height:1.45}
.question-list{display:grid;gap:0}
.question-block{padding:1.15rem .05rem;border-bottom:1px solid #e3e7e0}
.question-block:last-child{border-bottom:0;padding-bottom:.35rem}
.question-block[hidden]{display:none!important}
.question-block.has-error{margin:.35rem -.55rem;padding-right:.55rem;padding-left:.55rem;border:1px solid #d99a9d;border-radius:.75rem;background:#fffafa}
.question-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.65rem}
.question-label{font-size:.96rem;font-weight:790;line-height:1.35}
.question-help{margin-top:.2rem;color:var(--muted);font-size:.78rem;line-height:1.4}
.question-status{flex:0 0 auto;padding:.2rem .43rem;border-radius:999px;background:#eef1ec;color:var(--muted);font-size:.62rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}
.question-status.is-required{background:#ece8d6;color:#6f5b1f}
.field-error{margin-top:.52rem;color:var(--danger);font-size:.76rem;font-weight:760}
.character-counter{margin-top:.3rem;color:var(--muted);font-size:.68rem;text-align:right}
.character-counter.near-limit{color:var(--warning);font-weight:800}

.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.52rem}
.choice-card{display:flex;align-items:flex-start;gap:.62rem;min-height:54px;margin:0;padding:.68rem .75rem;border:1.5px solid var(--line);border-radius:.72rem;background:#fff;cursor:pointer;transition:border-color .12s ease,background-color .12s ease,transform .12s ease}
.choice-card:hover{border-color:#aab4a7}
.choice-card.selected{border-color:var(--brand);background:var(--brand-soft)}
.choice-card:focus-within{outline:3px solid rgba(68,83,63,.15);outline-offset:1px}
.choice-card .form-check-input{width:1.12rem;height:1.12rem;flex:0 0 auto;margin:.06rem 0 0;border-color:#879184}
.choice-card .form-check-input:checked{border-color:var(--brand);background-color:var(--brand)}
.choice-card span{font-size:.86rem;font-weight:650;line-height:1.32}

.scale-wrap{max-width:760px}
.scale-options{display:grid;grid-template-columns:repeat(5,minmax(48px,1fr));gap:.42rem}
.scale-options-nps{grid-template-columns:repeat(11,minmax(40px,1fr))}
.scale-choice{position:relative;margin:0;cursor:pointer}
.scale-choice input{position:absolute;opacity:0;pointer-events:none}
.scale-choice span{min-height:47px;display:grid;place-items:center;border:1.5px solid var(--line);border-radius:.66rem;background:#fff;font-size:.86rem;font-weight:820;transition:border-color .12s ease,background-color .12s ease,transform .12s ease}
.scale-choice:hover span{border-color:#aab4a7}
.scale-choice.selected span{border-color:var(--brand);background:var(--brand);color:#fff}
.scale-choice input:focus-visible+span{outline:3px solid rgba(68,83,63,.22);outline-offset:2px}
.scale-labels{display:flex;justify-content:space-between;gap:1rem;margin-top:.35rem;color:var(--muted);font-size:.67rem}
.scale-labels span:last-child{text-align:right}

.matrix-scroll{width:100%;overflow-x:auto;padding-bottom:.1rem}
.rating-matrix{width:100%;min-width:690px;border-collapse:separate;border-spacing:0 .34rem}
.rating-matrix thead th{padding:.2rem .22rem;color:var(--muted);font-size:.7rem;text-align:center}
.rating-matrix thead th:first-child{text-align:left}
.rating-matrix tbody tr{background:var(--surface-soft)}
.rating-matrix tbody th{width:48%;padding:.62rem .72rem;border-radius:.62rem 0 0 .62rem;font-size:.78rem;font-weight:680;line-height:1.3;text-align:left}
.rating-matrix tbody td{padding:.3rem .2rem;text-align:center}
.rating-matrix tbody td:last-child{padding-right:.48rem;border-radius:0 .62rem .62rem 0}
.matrix-choice{position:relative;display:inline-grid;margin:0;place-items:center;cursor:pointer}
.matrix-choice input{position:absolute;opacity:0;pointer-events:none}
.matrix-choice span{width:2rem;height:2rem;display:grid;place-items:center;border:1.5px solid #c7cec3;border-radius:.55rem;background:#fff;color:var(--muted);font-size:.72rem;font-weight:820}
.matrix-choice:hover span{border-color:#9ba696}
.matrix-choice.selected span{border-color:var(--brand);background:var(--brand);color:#fff}
.matrix-choice input:focus-visible+span{outline:3px solid rgba(68,83,63,.2);outline-offset:2px}
.matrix-legend{display:none}

.review-note{margin:.55rem 0;color:var(--muted);font-size:.72rem;text-align:center}
.survey-actions{position:sticky;bottom:max(.45rem,env(safe-area-inset-bottom));z-index:20;display:flex;justify-content:flex-end;gap:.5rem;margin-top:.6rem;padding:.5rem;border:1px solid rgba(211,217,207,.96);border-radius:.82rem;background:rgba(255,255,255,.96);box-shadow:0 10px 25px rgba(29,38,28,.13);backdrop-filter:blur(10px)}
.survey-actions .btn{min-width:128px;min-height:49px}
.survey-actions #previousButton{margin-right:auto}
.wizard-only{display:none}
.js .wizard-only{display:inline-flex;align-items:center;justify-content:center}
.js .no-js-submit{display:none}
.js .no-js-submit:not(.d-none){display:inline-flex;align-items:center;justify-content:center}

.result-card{max-width:690px}
.result-logo{width:5rem;height:5rem;display:block;margin:0 auto .6rem;object-fit:contain}
.result-check{width:4rem;height:4rem;display:grid;margin:.5rem auto .75rem;place-items:center;border-radius:50%;background:var(--success);color:#fff;font-size:2.35rem;font-weight:900;box-shadow:0 0 0 .55rem rgba(40,115,76,.1)}
.result-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.result-details>div{padding:.72rem .8rem;border:1px solid var(--line);border-radius:.7rem;background:var(--surface-soft)}
.result-details span{display:block;margin-bottom:.12rem;color:var(--muted);font-size:.65rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.result-details strong{font-size:.83rem;word-break:break-word}

/* Staff views */
.stats-container{max-width:1180px}
.staff-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.staff-heading h1{margin:0;font-size:clamp(1.5rem,3vw,2.2rem);font-weight:850;letter-spacing:-.025em}
.staff-heading p{max-width:720px;margin:.35rem 0 0;color:var(--muted);font-size:.84rem}
.staff-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.4rem}
.staff-filter{display:flex;align-items:end;gap:.55rem;padding:.65rem;border:1px solid var(--line);border-radius:.82rem;background:#fff}
.staff-filter label{display:block;margin-bottom:.2rem;color:var(--muted);font-size:.65rem;font-weight:850;text-transform:uppercase}
.metric-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.65rem;margin-bottom:.8rem}
.metric-card{min-width:0;padding:.85rem;border:1px solid var(--line);border-radius:.82rem;background:#fff;box-shadow:0 7px 22px rgba(29,38,28,.06)}
.metric-card span{display:block;color:var(--muted);font-size:.66rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}
.metric-card strong{display:block;margin:.22rem 0;color:var(--text);font-size:clamp(1.25rem,2.5vw,1.9rem);line-height:1.05}
.metric-card small{display:block;color:var(--muted);font-size:.66rem}
.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.stats-panel{min-width:0;background:#fff}
.stats-panel .card-body{padding:1rem}
.stats-panel h2{margin:0 0 .75rem;font-size:1rem;font-weight:820}
.stats-panel h3{margin:1rem 0 .55rem;font-size:.84rem;font-weight:820}
.bar-list{display:grid;gap:.55rem}
.bar-row{display:grid;grid-template-columns:minmax(145px,1.15fr) minmax(100px,2fr) 3.5rem;align-items:center;gap:.55rem;font-size:.74rem}
.bar-row>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.bar-track{height:.58rem;overflow:hidden;border-radius:999px;background:#e8ece6}
.bar-track i{display:block;height:100%;border-radius:inherit;background:var(--brand)}
.bar-row strong{text-align:right;font-size:.72rem}
.daily-bars{display:flex;align-items:end;gap:.35rem;height:165px;overflow-x:auto;padding-top:.3rem}
.daily-bar{height:100%;min-width:34px;display:grid;grid-template-rows:1rem 1fr 1.2rem;align-items:end;text-align:center}
.daily-bar>span{color:var(--muted);font-size:.62rem}
.daily-bar>div{position:relative;height:100%;min-height:70px;border-radius:.35rem .35rem .15rem .15rem;background:#eef1ec;overflow:hidden}
.daily-bar i{position:absolute;right:0;bottom:0;left:0;min-height:2px;border-radius:inherit;background:var(--brand)}
.daily-bar small{padding-top:.2rem;color:var(--muted);font-size:.57rem;white-space:nowrap}
.open-feedback-list{display:grid;gap:.55rem;max-height:660px;overflow:auto}
.feedback-entry{padding:.72rem;border:1px solid var(--line);border-radius:.7rem;background:var(--surface-soft)}
.feedback-entry header{display:flex;justify-content:space-between;gap:.6rem;margin-bottom:.35rem;color:var(--muted);font-size:.65rem}
.feedback-entry strong{color:var(--text)}
.feedback-entry p{margin:0;white-space:pre-wrap;font-size:.76rem;line-height:1.42}
.feedback-entry p+p{margin-top:.45rem;padding-top:.45rem;border-top:1px solid var(--line)}
.table-responsive{border-radius:.75rem}
.stats-table{margin:0;font-size:.74rem}
.stats-table thead th{padding:.6rem .7rem;color:var(--muted);background:var(--surface-soft);font-size:.63rem;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.stats-table td{padding:.6rem .7rem;vertical-align:middle}
.status-badge{display:inline-flex;padding:.22rem .42rem;border-radius:999px;font-size:.62rem;font-weight:850}
.status-badge.yes{color:#1c5c3b;background:var(--success-soft)}
.status-badge.no{color:#6b4f1b;background:#f5edcf}
.staff-login{max-width:560px;margin:0 auto}
.diagnostic-list .list-group-item{font-size:.8rem}

@media(max-width:1050px){
  .metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:767.98px){
  .site-header,.site-header>.container{height:56px}
  .brand-logo{width:2rem;height:2rem}
  .brand strong{max-width:160px;font-size:.82rem}
  .brand small{font-size:.63rem}
  .event-menu{display:none}
  .mobile-event-selector{display:flex;align-items:end;gap:.55rem;padding:.65rem;border:1px solid var(--line);border-radius:.82rem;background:#fff}
  .mobile-event-selector label{display:block;margin-bottom:.2rem;color:var(--muted);font-size:.65rem;font-weight:850;text-transform:uppercase}
  .mobile-event-selector .btn{flex:0 0 auto}
  .intro-brand-panel{grid-template-columns:5rem minmax(0,1fr);gap:.85rem;padding:.9rem 1rem}
  .intro-logo{width:5rem;height:5rem}
  .intro-heading-copy h1{font-size:1.24rem}
  .intro-heading-copy p{font-size:.8rem}
  .choice-grid{grid-template-columns:1fr}
  .scale-options-nps{grid-template-columns:repeat(6,minmax(42px,1fr))}
  .matrix-scroll{overflow:visible}
  .rating-matrix{min-width:0;border-spacing:0;width:100%}
  .rating-matrix thead{display:none}
  .rating-matrix tbody{display:grid;gap:.65rem}
  .rating-matrix tbody tr{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.34rem;padding:.65rem;border:1px solid var(--line);border-radius:.72rem;background:var(--surface-soft)}
  .rating-matrix tbody th{grid-column:1/-1;width:auto;padding:0 0 .35rem;border-radius:0;font-size:.78rem}
  .rating-matrix tbody td,.rating-matrix tbody td:last-child{padding:0;border-radius:0}
  .matrix-choice{display:grid;width:100%}
  .matrix-choice span{width:100%;height:2.1rem}
  .matrix-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem .7rem;margin-top:.6rem;color:var(--muted);font-size:.61rem}
  .matrix-legend strong{color:var(--text)}
  .survey-actions .btn{min-width:0;flex:1}
  .staff-heading{align-items:flex-start;flex-direction:column}
  .staff-actions{width:100%;justify-content:flex-start}
  .staff-filter{width:100%;align-items:stretch;flex-direction:column}
  .stats-grid{grid-template-columns:1fr}
  .bar-row{grid-template-columns:minmax(110px,1fr) minmax(80px,1.4fr) 3rem}
}

@media(max-width:520px){
  main.survey-container{padding-right:.65rem;padding-left:.65rem}
  .language-nav a{min-width:32px;padding:.28rem .35rem}
  .mobile-event-selector{align-items:stretch;flex-direction:column}
  .intro-card .card-body,.result-card .card-body{padding:1rem!important}
  .section-card .card-body{padding:.82rem!important}
  .section-heading{padding-bottom:.8rem}
  .section-heading h1{font-size:1.22rem}
  .question-block{padding:1rem 0}
  .question-heading{gap:.5rem}
  .question-label{font-size:.88rem}
  .question-status{font-size:.56rem}
  .choice-card{min-height:50px;padding:.6rem .65rem}
  .choice-card span{font-size:.8rem}
  .scale-options{gap:.3rem}
  .scale-choice span{min-height:43px;font-size:.8rem}
  .scale-options-nps{grid-template-columns:repeat(6,minmax(36px,1fr))}
  .survey-topbar{align-items:flex-start}
  .player-summary strong{font-size:.8rem}
  .result-details{grid-template-columns:1fr}
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
  .metric-card{padding:.7rem}
  .metric-card strong{font-size:1.25rem}
  .bar-row{grid-template-columns:1fr 2.2rem;gap:.25rem .5rem}
  .bar-row .bar-track{grid-column:1/-1;grid-row:2}
  .bar-row strong{grid-column:2;grid-row:1}
}

/* Dynamic survey experience */
[hidden]{display:none!important}
.verification-summary{display:flex;align-items:center;gap:.65rem;min-width:0}
.verification-dot{width:2.05rem;height:2.05rem;display:grid;flex:0 0 auto;place-items:center;border-radius:50%;background:var(--success-soft);color:var(--success);font-size:1rem;font-weight:900}
.verification-summary>div{display:flex;min-width:0;flex-direction:column;line-height:1.2}
.verification-summary strong{font-size:.82rem}
.verification-summary small{margin-top:.16rem;color:var(--muted);font-size:.7rem}
.verification-summary small.is-anonymous{color:var(--success);font-weight:760}
.verification-summary small.is-identified{color:var(--warning);font-weight:760}
.survey-live-summary{display:flex;flex:0 0 auto;flex-direction:column;text-align:right;line-height:1.2}
.survey-live-summary strong{font-size:.8rem}
.survey-live-summary small{margin-top:.16rem;color:var(--muted);font-size:.68rem}
.survey-toolbar{display:grid;grid-template-columns:auto minmax(180px,300px) 1fr auto;align-items:center;gap:.5rem;margin-bottom:.8rem;padding:.55rem .65rem;border:1px solid var(--line);border-radius:.78rem;background:rgba(255,255,255,.82)}
.survey-toolbar label{margin:0;color:var(--muted);font-size:.66rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}
.survey-toolbar .form-select{min-height:36px}
.draft-status{justify-self:end;color:var(--muted);font-size:.68rem}
.theme-list{display:grid;gap:1rem;padding-top:1rem}
.survey-theme{overflow:hidden;border:1px solid #dfe4dc;border-radius:.88rem;background:#fff}
.survey-theme[hidden]{display:none!important}
.theme-heading{display:flex;align-items:flex-start;gap:.72rem;padding:.88rem 1rem;border-bottom:1px solid #e5e9e2;background:var(--surface-soft)}
.theme-heading>div{min-width:0}
.theme-heading h2{margin:0;font-size:1.02rem;font-weight:830;line-height:1.25;letter-spacing:-.01em}
.theme-heading p{margin:.24rem 0 0;color:var(--muted);font-size:.76rem;line-height:1.4}
.theme-icon{width:2rem;height:2rem;display:grid;flex:0 0 auto;place-items:center;border-radius:.58rem;background:var(--brand-soft);color:var(--brand-dark);font-size:1rem;font-weight:850}
.survey-theme>.question-list{padding:0 1rem}
.feedback-illustration{margin:0;padding:1rem 1rem 0}
.question-block>.feedback-illustration{padding:0 0 .8rem}
.feedback-illustration img{display:block;width:100%;max-height:340px;object-fit:cover;border:1px solid var(--line);border-radius:.78rem;background:var(--surface-soft)}
.feedback-illustration figcaption{margin-top:.35rem;color:var(--muted);font-size:.68rem;line-height:1.35}
.info-block{margin:.85rem 0;padding:.9rem 1rem!important;border:1px solid #dfd19b!important;border-radius:.78rem;background:var(--warning-soft)}
.info-block h3{margin:0;color:#594b20;font-size:.9rem;font-weight:820}
.info-block p{margin:.28rem 0 0;color:#665a32;font-size:.77rem;line-height:1.45}
.info-block>.feedback-illustration{padding:0 0 .75rem}
.matrix-card-list{display:grid;gap:.62rem}
.matrix-row-card{padding:.7rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface-soft)}
.matrix-row-label{display:block;margin-bottom:.55rem;font-size:.79rem;font-weight:720;line-height:1.35}
.matrix-row-options{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.35rem}
.matrix-row-options .matrix-choice{display:grid;width:100%}
.matrix-row-options .matrix-choice span{width:100%;height:2.2rem}
.privacy-result{margin:.75rem auto 0;padding:.62rem .75rem;border-radius:.7rem;font-size:.78rem;font-weight:720}
.privacy-result.is-anonymous{color:#1c5c3b;background:var(--success-soft)}
.privacy-result.is-identified{color:#6b4f1b;background:#f5edcf}
.choice-grid-multi{grid-template-columns:repeat(2,minmax(0,1fr))}

@media(max-width:767.98px){
  .survey-toolbar{grid-template-columns:1fr auto}
  .survey-toolbar label{grid-column:1/-1}
  .survey-toolbar .form-select{grid-column:1/2}
  .draft-status{grid-column:1/2;grid-row:3;justify-self:start}
  .survey-toolbar .step-summary{grid-column:2;grid-row:2}
  .survey-topbar{align-items:flex-start}
  .survey-live-summary{max-width:44%}
  .theme-list{gap:.75rem;padding-top:.75rem}
  .survey-theme>.question-list{padding:0 .75rem}
  .theme-heading{padding:.78rem .75rem}
  .feedback-illustration{padding:.75rem .75rem 0}
  .matrix-row-options{gap:.28rem}
  .matrix-row-options .matrix-choice span{height:2.08rem}
}

@media(max-width:520px){
  .survey-topbar{gap:.55rem}
  .verification-summary strong{font-size:.75rem}
  .verification-summary small,.survey-live-summary small{font-size:.61rem}
  .survey-live-summary strong{font-size:.72rem}
  .verification-dot{width:1.8rem;height:1.8rem}
  .survey-toolbar{padding:.48rem}
  .survey-toolbar .form-select{font-size:.76rem}
  .theme-heading h2{font-size:.92rem}
  .theme-heading p{font-size:.7rem}
  .theme-icon{width:1.75rem;height:1.75rem;font-size:.85rem}
  .survey-theme>.question-list{padding:0 .6rem}
  .matrix-row-card{padding:.55rem}
  .matrix-row-options .matrix-choice span{height:2rem;font-size:.65rem}
  .matrix-legend{grid-template-columns:1fr!important}
  .choice-grid-multi{grid-template-columns:1fr}
}

/* Dynamic survey v2 */
.survey-step[hidden],.survey-theme[hidden],.question-block[hidden]{display:none!important}
.survey-topbar{align-items:center;padding:.72rem .82rem;border:1px solid var(--line);border-radius:.82rem;background:rgba(255,255,255,.92);box-shadow:0 7px 20px rgba(29,38,28,.05)}
.verification-summary{display:flex;align-items:center;gap:.62rem;min-width:0}
.verification-dot{width:2rem;height:2rem;display:grid;flex:0 0 auto;place-items:center;border-radius:50%;background:var(--success-soft);color:var(--success);font-size:.92rem;font-weight:900}
.verification-summary>div{display:flex;min-width:0;flex-direction:column}
.verification-summary strong{font-size:.78rem}
.verification-summary small{margin-top:.12rem;color:var(--muted);font-size:.68rem;line-height:1.25}
.verification-summary small.is-anonymous{color:#1c5c3b;font-weight:780}
.verification-summary small.is-identified{color:#5e4a1d;font-weight:780}
.survey-live-summary{display:flex;flex:0 0 auto;flex-direction:column;text-align:right}
.survey-live-summary strong{font-size:.78rem}
.survey-live-summary small{margin-top:.12rem;color:var(--muted);font-size:.66rem}
.survey-toolbar{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(120px,auto) auto;align-items:center;gap:.5rem;margin:-.15rem 0 .75rem;padding:.52rem .62rem;border:1px solid var(--line);border-radius:.75rem;background:#fff}
.survey-toolbar label{margin:0;color:var(--muted);font-size:.65rem;font-weight:820;letter-spacing:.04em;text-transform:uppercase}
.survey-toolbar .form-select{min-height:38px}
.draft-status{color:var(--muted);font-size:.67rem;text-align:right}
.survey-toolbar .step-summary{padding-left:.45rem;border-left:1px solid var(--line)}
.theme-list{display:grid;gap:.8rem;margin-top:1rem}
.survey-theme{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:.9rem;background:#fff;transition:border-color .16s ease,box-shadow .16s ease}
.survey-theme.is-complete{border-color:#a8c8b4;box-shadow:0 0 0 2px rgba(40,115,76,.06)}
.theme-heading{display:flex;align-items:flex-start;gap:.65rem;padding:.86rem 1rem;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#f8faf7,#f2f5f0)}
.theme-heading>div{min-width:0;flex:1}
.theme-heading h2{margin:0;color:var(--text);font-size:1rem;font-weight:840;letter-spacing:-.01em}
.theme-heading p{margin:.25rem 0 0;color:var(--muted);font-size:.75rem;line-height:1.4}
.theme-icon{width:2rem;height:2rem;display:grid;flex:0 0 auto;place-items:center;border-radius:.55rem;background:var(--brand-soft);color:var(--brand);font-size:1rem}
.theme-completion-mark{width:1.65rem;height:1.65rem;display:grid;flex:0 0 auto;place-items:center;border:1px solid var(--line);border-radius:50%;background:#fff;color:#a7afa4;font-size:.7rem;font-weight:900;transition:all .16s ease}
.survey-theme.is-complete .theme-completion-mark{border-color:var(--success);background:var(--success);color:#fff}
.survey-theme>.question-list{padding:0 1rem .25rem}
.feedback-illustration{margin:0;border-bottom:1px solid var(--line);background:var(--surface-soft)}
.feedback-illustration img{width:100%;max-height:320px;display:block;object-fit:cover}
.feedback-illustration figcaption{padding:.42rem .7rem;color:var(--muted);font-size:.67rem;line-height:1.35}
.question-block>.feedback-illustration{overflow:hidden;margin:0 0 .85rem;border:1px solid var(--line);border-radius:.72rem}
.question-block>.feedback-illustration img{max-height:260px}
.info-block{margin:.8rem 0;padding:.85rem .9rem!important;border:1px solid #d8ce9f!important;border-radius:.75rem;background:var(--warning-soft)}
.info-block h3{margin:0 0 .3rem;font-size:.9rem;font-weight:830}
.info-block p{margin:0;color:#62562c;font-size:.76rem;line-height:1.45}
.choice-grid-compact{grid-template-columns:repeat(2,minmax(0,220px))}
.matrix-card-list{display:grid;gap:.55rem}
.matrix-row-card{display:grid;grid-template-columns:minmax(180px,1.35fr) minmax(260px,1fr);align-items:center;gap:.75rem;padding:.62rem .7rem;border:1px solid var(--line);border-radius:.7rem;background:var(--surface-soft)}
.matrix-row-label{font-size:.78rem;font-weight:690;line-height:1.35}
.matrix-row-options{display:grid;grid-template-columns:repeat(6,minmax(34px,1fr));gap:.3rem}
.matrix-row-options .matrix-choice{width:100%}
.matrix-row-options .matrix-choice span{width:100%;height:2.15rem}
.matrix-card-list>.matrix-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.25rem .7rem;margin-top:.2rem;padding:.5rem .65rem;border-radius:.6rem;background:#f7f8f6;color:var(--muted);font-size:.62rem}
.matrix-card-list>.matrix-legend strong{color:var(--text)}
.privacy-result{margin:.8rem auto 0;padding:.58rem .7rem;border-radius:.65rem;font-size:.75rem;line-height:1.4}
.privacy-result.is-anonymous{border:1px solid #b9d6c4;background:var(--success-soft);color:#1f5b3d}
.privacy-result.is-identified{border:1px solid #dfd19b;background:var(--warning-soft);color:#5c5027}

@media(max-width:767.98px){
  .survey-topbar{align-items:flex-start;flex-direction:column}
  .survey-live-summary{width:100%;padding-top:.45rem;border-top:1px solid var(--line);text-align:left}
  .survey-toolbar{grid-template-columns:1fr auto}
  .survey-toolbar label{grid-column:1/-1}
  .survey-toolbar .form-select{grid-column:1/2}
  .draft-status{grid-column:1/2;text-align:left}
  .survey-toolbar .step-summary{grid-column:2/3;grid-row:2/4;align-self:center}
  .survey-theme>.question-list{padding-right:.72rem;padding-left:.72rem}
  .theme-heading{padding:.75rem .78rem}
  .matrix-row-card{grid-template-columns:1fr;gap:.45rem}
  .matrix-row-options{grid-template-columns:repeat(6,minmax(38px,1fr))}
  .matrix-card-list>.matrix-legend{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:520px){
  .choice-grid-compact{grid-template-columns:1fr}
  .matrix-row-options{grid-template-columns:repeat(3,minmax(44px,1fr))}
  .matrix-row-options .matrix-choice span{height:2.35rem}
  .matrix-card-list>.matrix-legend{grid-template-columns:1fr}
}

/* Accessible question tooltips */
.question-copy{min-width:0;flex:1}
.question-label-line{position:relative;display:flex;align-items:flex-start;gap:.38rem;min-width:0}
.question-label-line.info-label-line{align-items:center}
.question-label-line.info-label-line h3{margin:0}
.question-tooltip{position:relative;display:inline-flex;flex:0 0 auto;align-items:center}
.question-tooltip-toggle{width:1.35rem;height:1.35rem;display:inline-grid;padding:0;place-items:center;border:1px solid #aeb8aa;border-radius:50%;background:#fff;color:var(--brand-dark);font:800 .72rem/1 system-ui,sans-serif;cursor:pointer;transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease}
.question-tooltip-toggle:hover,.question-tooltip-toggle[aria-expanded="true"]{border-color:var(--brand);background:var(--brand-soft)}
.question-tooltip-toggle:focus-visible{outline:3px solid rgba(68,83,63,.22);outline-offset:2px}
.question-tooltip-panel{position:absolute;z-index:60;top:calc(100% + .42rem);left:50%;width:min(320px,calc(100vw - 2rem));padding:.62rem .7rem;border:1px solid #cbd3c7;border-radius:.65rem;background:#fff;color:var(--text);box-shadow:0 12px 30px rgba(29,38,28,.18);font-size:.73rem;font-weight:520;line-height:1.45;transform:translateX(-50%)}
.question-tooltip-panel::before{position:absolute;top:-.36rem;left:50%;width:.68rem;height:.68rem;border-top:1px solid #cbd3c7;border-left:1px solid #cbd3c7;background:#fff;content:"";transform:translateX(-50%) rotate(45deg)}
.question-tooltip-panel[hidden]{display:none!important}
@media(max-width:520px){
  .question-tooltip-panel{position:fixed;z-index:100;top:auto;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));left:1rem;width:auto;max-height:45vh;overflow:auto;transform:none}
  .question-tooltip-panel::before{display:none}
}

/* Layered terrain feedback map */
.terrain-map-widget{--map-good:#26764c;--map-bad:#a33d42;display:grid;gap:.68rem;padding:.72rem;border:1px solid var(--line);border-radius:.82rem;background:var(--surface-soft)}
.terrain-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.62rem}
.terrain-map-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;min-width:0;flex:1}
.terrain-map-group{min-height:46px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.42rem;padding:.48rem .58rem;border:1.5px solid var(--line);border-radius:.65rem;background:#fff;color:var(--text);font-size:.73rem;font-weight:760;text-align:left;cursor:pointer}
.terrain-map-group:hover{border-color:#aab4a7}
.terrain-map-group:focus-visible,.terrain-map-actions button:focus-visible,.terrain-map-marker:focus-visible,.terrain-map-selection button:focus-visible{outline:3px solid rgba(68,83,63,.22);outline-offset:2px}
.terrain-map-group.is-active{border-color:var(--brand);box-shadow:0 0 0 2px rgba(68,83,63,.08)}
.terrain-map-group[data-map-group="good"].is-active{border-color:var(--map-good);background:#e9f5ee}
.terrain-map-group[data-map-group="bad"].is-active{border-color:var(--map-bad);background:#faecec}
.terrain-map-group-dot{width:.72rem;height:.72rem;border-radius:50%;background:var(--brand)}
.terrain-map-group[data-map-group="good"] .terrain-map-group-dot{background:var(--map-good)}
.terrain-map-group[data-map-group="bad"] .terrain-map-group-dot{background:var(--map-bad)}
.terrain-map-group strong{color:var(--muted);font-size:.66rem;white-space:nowrap}
.terrain-map-actions{display:flex;flex:0 0 auto;align-items:center;gap:.28rem}
.terrain-map-actions button{min-width:42px;min-height:42px;padding:.36rem .5rem;border:1px solid #b8c0b5;border-radius:.58rem;background:#fff;color:var(--text);font-size:.75rem;font-weight:820;cursor:pointer}
.terrain-map-actions button:hover{border-color:var(--brand);background:var(--brand-soft)}
.terrain-map-actions .terrain-map-clear{width:auto;color:var(--danger)}
.terrain-map-hint{margin:0;color:var(--muted);font-size:.72rem;line-height:1.42}
.terrain-map-viewport{position:relative;width:100%;max-height:min(72vh,760px);overflow:auto;border:1px solid #bfc7bc;border-radius:.72rem;background:#dfe4dc;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);touch-action:pan-x pan-y pinch-zoom;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.terrain-map-viewport:focus-visible{outline:3px solid rgba(68,83,63,.22);outline-offset:2px}
.terrain-map-canvas{position:relative;width:100%;min-width:100%;cursor:crosshair;transform-origin:top left;user-select:none;-webkit-user-select:none}
.terrain-map-canvas picture,.terrain-map-canvas img{width:100%;height:auto;display:block;pointer-events:none;-webkit-user-drag:none}
.terrain-map-markers{position:absolute;inset:0;pointer-events:none}
.terrain-map-marker{position:absolute;width:34px;height:34px;display:grid;padding:0;place-items:center;border:3px solid #fff;border-radius:50%;color:#fff;box-shadow:0 2px 7px rgba(0,0,0,.45);font-size:.73rem;font-weight:900;line-height:1;cursor:pointer;pointer-events:auto;transform:translate(-50%,-50%)}
.terrain-map-marker.is-good{background:var(--map-good)}
.terrain-map-marker.is-bad{background:var(--map-bad)}
.terrain-map-marker:hover{transform:translate(-50%,-50%) scale(1.08)}
.terrain-map-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem}
.terrain-map-selection-list{display:flex;min-height:35px;flex:1;flex-wrap:wrap;gap:.35rem;align-items:center}
.terrain-map-selection{display:inline-flex;align-items:center;gap:.3rem;padding:.28rem .34rem .28rem .48rem;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:.68rem;font-weight:760}
.terrain-map-selection.is-good{border-color:#9ac8ab;color:#205c3b}
.terrain-map-selection.is-bad{border-color:#deb0b2;color:#7d2e32}
.terrain-map-selection button{width:25px;height:25px;display:grid;padding:0;place-items:center;border:0;border-radius:50%;background:#eef1ec;color:inherit;font-size:1rem;font-weight:800;line-height:1;cursor:pointer}
.terrain-map-selection-empty{color:var(--muted);font-size:.7rem}
.terrain-map-widget.is-at-limit{animation:mapLimitPulse .32s ease 2}
@keyframes mapLimitPulse{50%{box-shadow:0 0 0 3px rgba(162,63,67,.14);border-color:#c9787c}}

/* Mobile-first hardening for long, dynamic forms. */
html,body{max-width:100%;overflow-x:hidden}
img,svg,video,canvas{max-width:100%}
.question-label,.question-help,.choice-card span,.theme-heading h2,.theme-heading p{overflow-wrap:anywhere}
.survey-actions{padding-bottom:max(.65rem,env(safe-area-inset-bottom))}

@media(max-width:767.98px){
  .survey-container{max-width:100%;padding-right:.75rem;padding-left:.75rem}
  .section-card>.card-body{padding:.88rem!important}
  .terrain-map-toolbar{align-items:stretch;flex-direction:column}
  .terrain-map-actions{width:100%;justify-content:flex-end}
  .terrain-map-viewport{max-height:68vh}
  .terrain-map-footer{align-items:stretch;flex-direction:column}
  .terrain-map-footer .btn{width:100%}
}

@media(max-width:520px){
  .site-header,.site-header>.container{height:56px}
  .brand-logo{width:2rem;height:2rem}
  .brand small{display:none}
  .header-actions{gap:.25rem}
  .language-nav a{min-width:34px}
  .question-block{padding-top:1rem;padding-bottom:1rem}
  .question-heading{gap:.5rem}
  .question-status{font-size:.57rem}
  .choice-grid{grid-template-columns:1fr}
  .choice-card{min-height:52px;padding:.72rem}
  .scale-options{grid-template-columns:repeat(5,minmax(44px,1fr));gap:.28rem}
  .scale-options-nps{grid-template-columns:repeat(6,minmax(42px,1fr))}
  .scale-options-nps .scale-choice:nth-child(n+7){grid-column:auto}
  .terrain-map-widget{margin-right:-.18rem;margin-left:-.18rem;padding:.5rem}
  .terrain-map-groups{grid-template-columns:1fr}
  .terrain-map-group{min-height:48px}
  .terrain-map-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
  .terrain-map-actions button{width:100%;min-width:0;min-height:46px}
  .terrain-map-actions .terrain-map-clear{width:100%}
  .terrain-map-viewport{max-height:62vh;border-radius:.58rem}
  .terrain-map-marker{width:40px;height:40px}
  .terrain-map-selection button{width:30px;height:30px}
}

@media(max-width:360px){
  .survey-container{padding-right:.5rem;padding-left:.5rem}
  .section-card>.card-body{padding:.68rem!important}
  .survey-theme>.question-list{padding-right:.48rem;padding-left:.48rem}
  .theme-heading{padding:.7rem .58rem}
  .question-status{display:none}
  .scale-options-nps{grid-template-columns:repeat(4,minmax(44px,1fr))}
}
@media(max-width:520px){
  .terrain-map-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
  .terrain-map-actions .terrain-map-clear{grid-column:1/-1}
}

/* Per-question illustration framing (survey v7). */
.feedback-illustration.is-contain img{
  object-fit:contain;
  max-height:420px;
  padding:.35rem;
  background:#eef1eb;
}
.question-block>.feedback-illustration.is-contain img{max-height:420px}
@media(max-width:767.98px){
  .feedback-illustration.is-contain img,
  .question-block>.feedback-illustration.is-contain img{max-height:360px;padding:.2rem}
}


/* Survey v8: concise scales, landscape imagery and a fitted interactive map. */
.feedback-illustration{
  width:min(100%,960px);
  margin-right:auto;
  margin-left:auto;
}
.feedback-illustration img{
  width:100%;
  aspect-ratio:16/9;
  max-height:none;
  object-fit:cover;
  object-position:center;
}
.feedback-illustration figcaption{display:none!important}
.question-block>.feedback-illustration{width:100%;max-width:820px}
.feedback-illustration.is-contain img,
.question-block>.feedback-illustration.is-contain img{
  aspect-ratio:auto;
  max-height:520px;
  object-fit:contain;
}

.has-scale-tooltip{position:relative}
.scale-tooltip{
  position:absolute;
  z-index:30;
  left:50%;
  bottom:calc(100% + .5rem);
  width:max-content;
  max-width:min(240px,72vw);
  padding:.42rem .55rem;
  border:1px solid rgba(22,29,21,.14);
  border-radius:.48rem;
  background:#1f2921;
  color:#fff;
  box-shadow:0 8px 22px rgba(20,28,20,.22);
  font-size:.68rem;
  font-weight:700;
  line-height:1.25;
  text-align:center;
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,.25rem);
  transition:opacity .14s ease,transform .14s ease;
}
.scale-tooltip::after{
  content:"";
  position:absolute;
  top:100%;
  left:50%;
  border:.34rem solid transparent;
  border-top-color:#1f2921;
  transform:translateX(-50%);
}
.has-scale-tooltip:hover .scale-tooltip,
.has-scale-tooltip:focus-within .scale-tooltip{
  opacity:1;
  transform:translate(-50%,0);
}
.scale-choice>span{font-weight:860}
.matrix-row-help{
  margin:-.25rem 0 .58rem;
  color:var(--muted);
  font-size:.69rem;
  line-height:1.42;
}
.matrix-legend{display:none!important}
.verified-faction{color:var(--muted)!important;font-weight:650!important}
.survey-live-summary #remainingTime{color:var(--brand-dark);font-weight:700}

.terrain-map-viewport{
  position:relative;
  width:100%;
  height:min(72vh,800px);
  max-height:none;
  overflow:hidden;
  background:#cfd7cb;
  touch-action:pan-y;
}
.terrain-map-viewport.is-zoomed{cursor:grab;touch-action:none}
.terrain-map-viewport.is-dragging{cursor:grabbing}
.terrain-map-canvas{
  position:absolute;
  top:50%;
  left:50%;
  width:auto;
  min-width:0;
  height:auto;
  cursor:crosshair;
  transform:translate(-50%,-50%) scale(1);
  transform-origin:center center;
  will-change:transform;
}
.terrain-map-canvas picture,
.terrain-map-canvas img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
}
.terrain-map-widget:fullscreen{
  width:100vw;
  height:100vh;
  padding:.8rem;
  border:0;
  border-radius:0;
  background:#edf1ea;
  grid-template-rows:auto auto minmax(0,1fr) auto;
}
.terrain-map-widget:fullscreen .terrain-map-viewport{height:auto;min-height:0;max-height:none}
.terrain-map-widget:fullscreen .terrain-map-footer{padding-bottom:max(.2rem,env(safe-area-inset-bottom))}

@media(max-width:767.98px){
  .feedback-illustration img{aspect-ratio:16/9}
  .terrain-map-viewport{height:min(68vh,680px)}
  .terrain-map-actions{grid-template-columns:repeat(5,minmax(0,1fr))}
  .terrain-map-actions .terrain-map-clear{grid-column:1/-1}
  .scale-tooltip{font-size:.65rem}
}
@media(max-width:520px){
  .terrain-map-viewport{height:min(64vh,590px)}
  .terrain-map-actions{grid-template-columns:repeat(5,minmax(0,1fr))}
  .terrain-map-actions .terrain-map-clear{grid-column:1/-1}
  .feedback-illustration.is-contain img,
  .question-block>.feedback-illustration.is-contain img{max-height:430px}
}

/* Keep respondent identity and completion status available while scrolling. */
.feedback-shell>.survey-topbar{
  position:sticky;
  top:68px;
  z-index:1015;
  backdrop-filter:blur(12px);
}
@media(max-width:767.98px){
  .feedback-shell>.survey-topbar{top:64px}
}

/* Feedback survey v10: stable matrix copy column and a real Leaflet map. */
.matrix-row-card{
  grid-template-columns:minmax(240px,1fr) minmax(330px,420px);
  align-items:center;
  gap:.85rem 1rem;
}
.matrix-row-copy{min-width:0;align-self:center}
.matrix-row-label{margin:0;font-size:.79rem;font-weight:720;line-height:1.35;overflow-wrap:anywhere}
.matrix-row-help{
  margin:.24rem 0 0;
  max-width:58ch;
  color:var(--muted);
  font-size:.68rem;
  line-height:1.42;
  overflow-wrap:anywhere;
}
.matrix-row-options{align-self:center;width:100%}

.terrain-map-viewport{
  position:relative;
  height:clamp(460px,68vh,780px);
  overflow:hidden;
  isolation:isolate;
  touch-action:none;
}
.terrain-map-leaflet,
.terrain-map-fallback{position:absolute;inset:0;width:100%;height:100%}
.terrain-map-leaflet{display:none;background:#cfd7cb}
.terrain-map-fallback{display:block;overflow:hidden;touch-action:pan-y;cursor:crosshair}
.terrain-map-widget.has-leaflet .terrain-map-leaflet{display:block}
.terrain-map-widget.has-leaflet .terrain-map-fallback{display:none!important}
.terrain-map-fallback.is-zoomed{cursor:grab;touch-action:none}
.terrain-map-fallback.is-dragging{cursor:grabbing}
.terrain-map-widget.has-leaflet .terrain-map-actions [data-map-action="zoom-in"],
.terrain-map-widget.has-leaflet .terrain-map-actions [data-map-action="zoom-out"]{display:none}
.terrain-map-widget.has-leaflet .terrain-map-actions{grid-template-columns:repeat(3,minmax(0,auto))}
.terrain-map-widget.has-leaflet .terrain-map-actions .terrain-map-clear{grid-column:auto}

.terrain-map-leaflet.leaflet-container{
  z-index:1;
  background:#cfd7cb;
  font-family:inherit;
  cursor:crosshair;
  outline:0;
}
.terrain-map-leaflet.leaflet-dragging{cursor:grabbing}
.terrain-map-leaflet .leaflet-image-layer{image-rendering:auto;user-select:none;-webkit-user-drag:none}
.terrain-map-leaflet .leaflet-control-zoom{
  overflow:hidden;
  border:1px solid rgba(31,41,33,.22);
  border-radius:.65rem;
  box-shadow:0 5px 16px rgba(20,30,22,.2);
}
.terrain-map-leaflet .leaflet-control-zoom a,
.terrain-map-leaflet.leaflet-touch .leaflet-control-zoom a{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-color:#d4dad1;
  color:var(--brand-dark);
  font:850 1.35rem/1 system-ui,sans-serif;
}
.terrain-map-leaflet .leaflet-control-zoom a:hover,
.terrain-map-leaflet .leaflet-control-zoom a:focus{background:var(--brand-soft);color:var(--brand-dark)}
.terrain-map-leaflet-marker{
  width:42px!important;
  height:42px!important;
  display:grid!important;
  place-items:center;
  border:3px solid #fff;
  border-radius:50%;
  color:#fff;
  box-shadow:0 3px 10px rgba(0,0,0,.5);
  font:900 .78rem/1 system-ui,sans-serif;
  cursor:pointer;
  transform-origin:center;
  transition:transform .12s ease,filter .12s ease;
}
.terrain-map-leaflet-marker:hover,
.terrain-map-leaflet-marker:focus{filter:brightness(1.08);transform:scale(1.08)}
.terrain-map-leaflet-marker:focus-visible{outline:3px solid rgba(255,255,255,.9);outline-offset:3px}
.terrain-map-leaflet-marker.is-good{background:var(--map-good)}
.terrain-map-leaflet-marker.is-bad{background:var(--map-bad)}
.terrain-map-leaflet-marker span{pointer-events:none}
.terrain-map-widget:fullscreen .terrain-map-leaflet,
.terrain-map-widget:fullscreen .terrain-map-fallback{height:100%}

@media(max-width:991.98px){
  .matrix-row-card{grid-template-columns:minmax(210px,1fr) minmax(300px,360px)}
}
@media(max-width:767.98px){
  .matrix-row-card{grid-template-columns:1fr;align-items:stretch;gap:.5rem}
  .matrix-row-copy{padding:0 .05rem}
  .matrix-row-options{align-self:stretch}
  .terrain-map-viewport{height:clamp(400px,60vh,620px)}
  .terrain-map-widget.has-leaflet .terrain-map-actions{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .terrain-map-widget.has-leaflet .terrain-map-actions button{width:100%}
}
@media(max-width:520px){
  .matrix-row-help{font-size:.67rem}
  .terrain-map-viewport{height:clamp(370px,56vh,540px)}
  .terrain-map-leaflet .leaflet-control-zoom a,
  .terrain-map-leaflet.leaflet-touch .leaflet-control-zoom a{width:46px;height:46px}
}

/* Feedback survey v11: matrix notes remain under the row label while every
   answer group starts from the same fixed column. */
@media(min-width:768px){
  .matrix-row-card{align-items:start}
  .matrix-row-copy{align-self:start}
  .matrix-row-options{align-self:start;padding-top:.02rem}
}
.matrix-row-copy{display:flex;min-height:2.2rem;flex-direction:column;justify-content:flex-start}
.matrix-row-help{display:block;width:100%;max-width:60ch}

/* Feedback survey v11 mobile map: let the page keep its normal vertical
   scrolling outside the actual Leaflet/fallback interaction surface. */
.terrain-map-viewport{touch-action:auto}

/* Own-feedback preview on the thank-you page */
.own-feedback-preview{margin:1.25rem auto;text-align:left;border:1px solid var(--line);border-radius:1rem;background:#fff;box-shadow:var(--shadow);overflow:hidden}
.own-feedback-preview>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.15rem;cursor:pointer;font-weight:900;color:var(--brand);list-style:none}
.own-feedback-preview>summary::-webkit-details-marker{display:none}
.own-feedback-preview>summary::after{content:"+";display:grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:999px;background:var(--soft);color:var(--brand);font-weight:900}
.own-feedback-preview[open]>summary::after{content:"–"}
.own-feedback-preview>p{margin:0;padding:0 1.15rem 1rem;color:var(--muted);font-size:.84rem}
.own-feedback-section{padding:1rem 1.15rem;border-top:1px solid var(--line)}
.own-feedback-section>h3{margin:0 0 .85rem;font-size:1rem;font-weight:950;color:var(--ink)}
.own-feedback-theme{margin:.85rem 0 0;padding:.85rem;border:1px solid #e4e9e3;border-radius:.85rem;background:#f8faf7}
.own-feedback-theme>h4{margin:0 0 .65rem;font-size:.88rem;font-weight:900;color:var(--brand)}
.own-answer-item{padding:.65rem 0;border-top:1px solid #e7ece5}
.own-answer-item:first-of-type{border-top:0;padding-top:0}
.own-answer-item h5{margin:0 0 .35rem;font-size:.78rem;font-weight:850;color:#506153;line-height:1.35}
.own-answer-item p{margin:0;color:var(--ink);white-space:normal;overflow-wrap:anywhere}
.own-answer-tags{display:flex;flex-wrap:wrap;gap:.35rem}
.own-answer-tags span{display:inline-flex;align-items:center;padding:.32rem .5rem;border:1px solid #dbe4da;border-radius:999px;background:#fff;font-size:.75rem;color:var(--ink)}
.own-answer-matrix{display:grid;gap:.35rem}
.own-answer-matrix div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem;align-items:start;padding:.42rem .5rem;border:1px solid #e2e8e0;border-radius:.62rem;background:#fff;font-size:.74rem}
.own-answer-matrix span{min-width:0;color:var(--ink);overflow-wrap:anywhere}.own-answer-matrix strong{color:var(--brand);white-space:nowrap}
@media (max-width: 640px){.own-feedback-preview>summary{padding:.9rem}.own-feedback-section{padding:.9rem}.own-feedback-theme{padding:.75rem}.own-answer-matrix div{grid-template-columns:1fr}.own-answer-matrix strong{white-space:normal}}

/* Feedback survey v14: cooperative mobile Leaflet controls. On touch devices,
   a one-finger swipe scrolls the page until the respondent explicitly enables
   map movement. Pinch zoom and the large zoom buttons remain available. */
.terrain-map-interaction{display:none}
@media (max-width:767.98px) and (pointer:coarse){
  .terrain-map-widget.has-leaflet .terrain-map-interaction{display:inline-flex;align-items:center;justify-content:center}
  .terrain-map-widget.has-leaflet .terrain-map-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .terrain-map-widget.has-leaflet .terrain-map-actions .terrain-map-clear{grid-column:auto}
  .terrain-map-leaflet.leaflet-container:not(.is-interaction-active){touch-action:pan-x pan-y}
  .terrain-map-leaflet.leaflet-container.is-interaction-active{touch-action:none}
}
@media (max-width:420px) and (pointer:coarse){
  .terrain-map-widget.has-leaflet .terrain-map-actions{grid-template-columns:1fr 1fr}
}
