Files
survey-bundle/public/css/survey-frontend.css
T
admin.juergenandClaude Fable 5 6077832efc Honor the mandatory flag with explicit no-answer options
Symfony's required default forced an answer to every question no matter
what the mandatory checkbox said. Optional choice questions now offer a
dedicated 'Keine Antwort' option, optional range and text questions a
'Keine Angaben machen' checkbox (preselected for ranges, because a slider
always submits a value); the side that is not chosen gets dimmed but stays
clickable. Mandatory ranges start their value display at '?' and reject
the submit until the slider was actually used, so the browser's midpoint
default no longer leaks into the results.

Empty answers are stored as a deliberate 'no answer', kept out of counts,
averages and charts, and reported separately on the results page and in
the PDF export. Also gives the reader textarea its full width and field
styling, adds grid overflow guards for unbreakable content and styles the
form error box.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-26 14:36:38 +02:00

1442 lines
32 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@font-face {
font-family: "PT Sans Narrow";
src: url("../fonts/PTSansNarrow-Regular.woff2") format("woff2");
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "PT Sans Narrow";
src: url("../fonts/PTSansNarrow-Bold.woff2") format("woff2");
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Blogger Sans";
src: url("../fonts/Blogger%20Sans-Medium.woff2") format("woff2");
font-weight: 500;
font-style: normal;
font-display: swap;
}
:root {
--survey-blue: #0064ad;
--survey-orange: #ec7c32;
--survey-purple: #9d5276;
--survey-green: #00ae97;
--survey-rose: #fce4d6;
--survey-black: #222222;
--survey-gray-dark: #555e68;
--survey-gray-mid: #a2a8b4;
--survey-gray-soft: #e9e9eb;
--survey-surface: rgba(255, 255, 255, 0.92);
--survey-page-gutter: clamp(1.5em, 5vw, 10em);
}
.survey-brand-strip {
display: flex;
align-items: center;
justify-content: center;
gap: 1.5rem;
max-width: 1400px;
margin-left: max(var(--survey-page-gutter), calc((100% - 1400px) / 2));
margin-right: max(var(--survey-page-gutter), calc((100% - 1400px) / 2));
margin-top: 0;
margin-bottom: clamp(1.25rem, 3vw, 2.5rem);
padding: 0.5rem 0 0;
box-sizing: border-box;
}
.survey-brand-logo.primary {
width: auto;
max-width: min(100%, 320px);
height: 82px;
display: block;
}
.survey-brand-logo.secondary {
width: auto;
max-width: min(100%, 420px);
height: 75px;
}
.survey-shell {
max-width: 1400px;
box-sizing: border-box;
margin-left: max(var(--survey-page-gutter), calc((100% - 1400px) / 2));
margin-right: max(var(--survey-page-gutter), calc((100% - 1400px) / 2));
color: var(--survey-black);
font-family: "PT Sans Narrow", sans-serif;
font-size: clamp(1.0625rem, 0.95rem + 0.35vw, 1.25rem);
line-height: 1.55;
letter-spacing: 0.3px;
background:
radial-gradient(circle at top left, rgba(0, 100, 173, 0.22), transparent 30%),
radial-gradient(circle at bottom right, rgba(0, 174, 151, 0.12), transparent 34%),
linear-gradient(180deg, rgba(0, 100, 173, 0.12) 0%, rgba(255, 255, 255, 0.98) 52%, rgba(0, 100, 173, 0.08) 100%);
border: 1px solid rgba(162, 168, 180, 0.45);
border-radius: 2rem;
box-shadow: 0 28px 80px rgba(34, 34, 34, 0.08);
padding: clamp(1.5rem, 2.2vw, 2.4rem);
margin-bottom: 4em;
}
.survey-shell--reader {
max-width: 1000px;
margin-left: max(var(--survey-page-gutter), calc((100% - 1000px) / 2));
margin-right: max(var(--survey-page-gutter), calc((100% - 1000px) / 2));
}
.survey-shell--template {
background:
radial-gradient(circle at top left, rgba(236, 124, 50, 0.18), transparent 32%),
radial-gradient(circle at bottom right, rgba(157, 82, 118, 0.12), transparent 36%),
linear-gradient(180deg, rgba(252, 228, 214, 0.92) 0%, rgba(255, 250, 246, 0.98) 52%, rgba(252, 228, 214, 0.78) 100%);
}
.survey-shell h2,
.survey-shell h3,
.survey-shell h4 {
font-family: "Blogger Sans", sans-serif;
font-weight: 500;
color: var(--survey-blue);
letter-spacing: 0.01em;
}
.survey-shell,
.survey-shell * {
font-style: normal;
}
.survey-shell button,
.survey-shell input,
.survey-shell select,
.survey-shell textarea {
font: inherit;
}
.survey-grid {
display: grid;
gap: 1.5rem;
}
.survey-grid-columns {
display: grid;
gap: 1.5rem;
}
/* Unbrechbare Inhalte (lange Wörter, URLs, &nbsp;-Altdaten) dürfen das Layout
nicht sprengen: Grid-Zellen nicht über ihre Spur hinauswachsen lassen und
Wörter notfalls umbrechen (overflow-wrap wird an alle Texte vererbt). */
.survey-grid > *,
.survey-grid-columns > *,
.survey-form-grid > * {
min-width: 0;
}
.survey-shell {
overflow-wrap: break-word;
}
.survey-results-card {
overflow: hidden;
}
.survey-results-layout {
display: grid;
gap: 1.25rem;
margin-top: 1.1rem;
align-items: start;
}
.survey-results-layout.no-chart {
grid-template-columns: 1fr;
}
.survey-chart-panel {
position: relative;
min-height: 320px;
}
.survey-chart-panel::before {
content: "";
position: absolute;
inset: 0;
border-radius: 1.5rem;
background:
radial-gradient(circle at top left, rgba(0, 100, 173, 0.18), transparent 42%),
radial-gradient(circle at bottom right, rgba(236, 124, 50, 0.18), transparent 42%),
linear-gradient(135deg, rgba(0, 100, 173, 0.12) 0%, rgba(255, 255, 255, 0.9) 52%, rgba(236, 124, 50, 0.12) 100%);
border: 1px solid rgba(162, 168, 180, 0.28);
}
.survey-chart-frame {
position: relative;
z-index: 1;
min-height: 320px;
padding: 1rem;
}
.survey-chart-panel.is-line .survey-chart-frame {
min-height: 360px;
padding: 1rem 1rem 0.75rem;
}
.survey-chart-canvas {
width: 100%;
height: 100%;
}
.survey-results-panel {
display: grid;
gap: 1rem;
}
.survey-results-list {
display: grid;
gap: 0.9rem;
}
.survey-results-row {
display: grid;
gap: 0.45rem;
padding: 0.9rem 1rem;
border-radius: 1.15rem;
background: rgba(255, 255, 255, 0.78);
border: 1px solid rgba(162, 168, 180, 0.24);
}
.survey-results-responses {
max-height: 24rem;
overflow: auto;
padding-right: 0.25rem;
}
.survey-text-summary-grid {
display: grid;
gap: 0.9rem;
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}
.survey-text-summary-card {
display: grid;
gap: 0.6rem;
padding: 1rem;
border-radius: 1.2rem;
background: rgba(255, 255, 255, 0.78);
border: 1px solid rgba(162, 168, 180, 0.24);
}
.survey-text-response-grid {
display: grid;
gap: 0.9rem;
}
.survey-response-card {
display: grid;
gap: 0.7rem;
margin: 0;
font-style: normal;
background: rgba(255, 255, 255, 0.72);
}
.survey-response-card blockquote {
margin: 0;
}
.survey-response-card__index {
display: inline-flex;
align-items: center;
justify-content: center;
width: 2rem;
height: 2rem;
border-radius: 999px;
background: rgba(0, 100, 173, 0.1);
color: var(--survey-blue);
font-weight: 700;
}
.survey-metric-grid {
display: grid;
gap: 0.85rem;
grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
}
.survey-metric-card {
display: grid;
gap: 0.35rem;
padding: 0.95rem 1rem;
border-radius: 1.2rem;
background: rgba(252, 228, 214, 0.38);
border: 1px solid rgba(236, 124, 50, 0.16);
}
.survey-metric-card strong {
font-family: "Blogger Sans", sans-serif;
font-size: 1.35rem;
color: var(--survey-blue);
}
.survey-metric-label {
font-size: 0.78rem;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--survey-gray-dark);
font-weight: 700;
}
.survey-card {
background: var(--survey-surface);
border: 1px solid rgba(162, 168, 180, 0.34);
border-radius: 1.5rem;
padding: 1.25rem;
box-shadow: 0 12px 32px rgba(34, 34, 34, 0.06);
}
.survey-list-grid {
grid-template-columns: 1fr;
align-items: stretch;
}
.survey-list-card {
display: grid;
gap: 0.55rem;
padding: 0.9rem 1rem;
}
.survey-list-card__head {
display: flex;
gap: 0.6rem;
align-items: center;
}
.survey-list-card__head--template {
align-items: baseline;
justify-content: space-between;
flex-wrap: wrap;
gap: 0.75rem;
}
.survey-list-card__headline {
display: flex;
align-items: center;
gap: 0.6rem;
flex-wrap: wrap;
min-width: 0;
flex: 1 1 auto;
}
.survey-list-card__headline--template {
align-items: baseline;
justify-content: flex-start;
flex: 1 1 auto;
}
.survey-list-card__title-wrap {
min-width: 0;
}
.survey-list-card__title-wrap h3 {
margin: 0;
line-height: 1.15;
}
.survey-list-card__actions {
margin-top: 0;
align-items: center;
flex: 1 1 auto;
}
.survey-list-card__actions .survey-question-action-form {
margin: 0;
}
.survey-list-card__head-actions {
display: flex;
justify-content: flex-end;
gap: 0.5rem;
flex: 0 0 auto;
margin-left: 1rem;
}
.survey-list-card__head-actions--template {
align-items: baseline;
margin-left: auto;
}
.survey-list-card__footer {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 0.75rem;
flex-wrap: wrap;
margin-top: .3em;
}
.survey-list-card__stats {
display: flex;
flex-wrap: wrap;
gap: 0.45rem;
margin-top: 0.1rem;
}
.survey-list-stat {
display: inline-flex;
align-items: center;
padding: 0.34rem 0.62rem;
border-radius: 999px;
border: 1px solid rgba(0, 100, 173, 0.12);
background: rgba(255, 255, 255, 0.72);
color: var(--survey-gray-dark);
font-size: 0.78rem;
font-weight: 700;
line-height: 1;
}
.survey-meta {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
align-items: center;
}
.survey-list-publish-form,
.survey-list-eye-form {
margin: 0;
}
.survey-list-publish-form {
position: relative;
}
.survey-list-card__head-actions .survey-button {
padding: 0.55rem 0.82rem;
font-size: 0.9rem;
}
.survey-list-publish-button[disabled] {
opacity: 1;
background: rgba(162, 168, 180, 0.4);
border-color: rgba(162, 168, 180, 0.65);
color: var(--survey-gray-dark);
pointer-events: none;
}
.survey-list-publish-help {
position: absolute;
right: 0;
top: calc(100% + 0.35rem);
width: 19rem;
max-width: min(72vw, 19rem);
border-radius: 0.75rem;
background: rgba(52, 58, 69, 0.94);
color: #fff;
padding: 0.5rem 0.65rem;
font-size: 0.8rem;
line-height: 1.3;
box-shadow: 0 10px 22px rgba(0, 0, 0, 0.22);
opacity: 0;
visibility: hidden;
transform: translateY(-0.25rem);
transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s ease;
pointer-events: none;
}
.survey-list-publish-form:hover .survey-list-publish-help,
.survey-list-publish-form:focus-within .survey-list-publish-help {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
.survey-visibility-toggle {
display: inline-flex;
align-items: center;
gap: 0.55rem;
padding: 0.35rem 0.9rem 0.35rem 0.4rem;
border-radius: 999px;
border: 1px solid rgba(162, 168, 180, 0.5);
background: rgba(255, 255, 255, 0.88);
color: var(--survey-gray-dark);
font-weight: 700;
font-size: 0.9rem;
line-height: 1;
cursor: pointer;
transition: border-color 0.18s ease, color 0.18s ease;
}
.survey-visibility-toggle.is-on {
border-color: rgba(10, 131, 46, 0.45);
color: #0a6e28;
}
.survey-visibility-dot {
aspect-ratio: 1;
height: 28px;
border-radius: 999px;
background: #a6adb7;
display: inline-flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
transition: background 0.18s ease;
}
.survey-visibility-dot.is-on {
background: #0a832e;
}
.survey-visibility-label {
white-space: nowrap;
}
.survey-button-row {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
.survey-button-row--form-actions {
align-items: stretch;
}
.survey-button-row--editor-actions {
margin-top: 0;
margin-bottom: 1rem;
align-items: center;
}
.survey-button-row--navigation {
width: 100%;
justify-content: flex-end;
align-items: center;
margin-top: 1rem;
}
.survey-button-row--navigation.has-back {
justify-content: space-between;
}
.survey-navigation-form {
margin: 0;
}
.survey-navigation-form--back {
margin: 0;
}
.survey-navigation-submit {
margin-left: auto;
}
/* Reader: Zurück/Weiter füllen die volle Breite und sind so groß wie die Ja/Nein-Karten */
.survey-shell--reader .survey-button-row--navigation {
display: grid;
grid-template-columns: 1fr;
gap: 1.5rem;
}
.survey-shell--reader .survey-button-row--navigation.has-back {
grid-template-columns: 1fr 1fr;
}
.survey-shell--reader .survey-navigation-form--back {
width: 100%;
}
.survey-shell--reader .survey-button-row--navigation .survey-button {
width: 100%;
margin: 0;
padding: 1.25rem;
border-radius: 1.5rem;
}
.survey-publish-toggle-form {
margin: 0;
}
.survey-publish-toggle {
display: inline-flex;
align-items: center;
gap: 0.9rem;
padding: 0.55rem 0.7rem 0.55rem 1rem;
border-radius: 999px;
border: 1px solid rgba(0, 100, 173, 0.18);
background: rgba(255, 255, 255, 0.9);
color: var(--survey-blue);
cursor: pointer;
min-height: 3.2rem;
}
.survey-publish-toggle.is-on {
border-color: rgba(0, 174, 151, 0.3);
background: rgba(0, 174, 151, 0.08);
}
.survey-publish-toggle__copy {
display: grid;
gap: 0.05rem;
text-align: left;
line-height: 1.1;
}
.survey-publish-toggle__label {
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--survey-gray-dark);
}
.survey-publish-toggle__value {
font-weight: 700;
}
.survey-publish-toggle__track {
position: relative;
display: inline-flex;
align-items: center;
width: 3.35rem;
height: 1.9rem;
border-radius: 999px;
background: rgba(162, 168, 180, 0.45);
transition: background 0.2s ease;
flex-shrink: 0;
}
.survey-publish-toggle.is-on .survey-publish-toggle__track {
background: rgba(0, 174, 151, 0.72);
}
.survey-publish-toggle__thumb {
position: absolute;
top: 0.15rem;
left: 0.15rem;
width: 1.6rem;
height: 1.6rem;
border-radius: 50%;
background: #fff;
box-shadow: 0 4px 12px rgba(34, 34, 34, 0.18);
transition: transform 0.2s ease;
}
.survey-publish-toggle.is-on .survey-publish-toggle__thumb {
transform: translateX(1.45rem);
}
.survey-button {
display: inline-flex;
justify-content: center;
align-items: center;
gap: 0.5rem;
padding: 0.72rem 0.95rem;
border-radius: 999px;
border: 1px solid transparent;
text-decoration: none;
font-weight: 700;
cursor: pointer;
}
.survey-list-card__actions .survey-button {
padding: 0.55rem 0.82rem;
font-size: 0.9rem;
}
.survey-editor-meta-card {
margin-bottom: 1rem;
}
.survey-button.primary { background: var(--survey-blue); color: #fff; }
.survey-button.secondary { background: rgba(255,255,255,0.86); color: var(--survey-blue); border-color: rgba(0,100,173,0.18); }
.survey-button.danger { background: rgba(157, 82, 118, 0.12); color: var(--survey-purple); border-color: rgba(157, 82, 118, 0.22); }
.survey-button.is-disabled,
.survey-button[disabled] {
opacity: 0.45;
cursor: not-allowed;
pointer-events: none;
}
.survey-button-compact {
padding: 0.65rem 0.9rem;
font-size: 0.95rem;
}
.survey-form-grid {
display: grid;
gap: 1rem;
}
.survey-label {
display: grid;
gap: 0.4rem;
font-weight: 600;
}
.survey-label input,
.survey-label textarea,
.survey-label select {
width: 100%;
box-sizing: border-box;
border-radius: 1rem;
border: 1px solid rgba(162,168,180,0.5);
padding: 0.8rem 0.9rem;
background: rgba(255,255,255,0.98);
color: var(--survey-black);
}
.survey-inline-check {
display: inline-flex;
gap: 0.6rem;
align-items: center;
border: 1px solid rgba(162,168,180,0.35);
border-radius: 1rem;
padding: 0.8rem 1rem;
background: rgba(252,228,214,0.42);
}
.survey-question-toggles {
display: flex;
flex-wrap: wrap;
gap: 0.75rem;
}
.survey-question-toggles .survey-inline-check {
margin: 0;
}
.survey-alert {
border-radius: 1.2rem;
padding: 1rem 1.1rem;
margin-bottom: 1rem;
background: rgba(255,255,255,0.78);
border: 1px solid rgba(162,168,180,0.35);
}
.survey-alert.success {
background: linear-gradient(135deg, rgba(0, 174, 151, 0.2), rgba(255,255,255,0.96));
border-color: rgba(0, 174, 151, 0.62);
color: #085e57;
box-shadow: 0 18px 40px rgba(0, 174, 151, 0.16);
font-weight: 700;
border-left: 0.45rem solid rgba(0, 174, 151, 0.92);
}
.survey-alert.error { border-color: rgba(157, 82, 118, 0.28); color: var(--survey-purple); }
.survey-alert.warning { border-color: rgba(236, 124, 50, 0.28); color: var(--survey-orange); }
.survey-kpis {
display: grid;
gap: 1rem;
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}
.survey-kpis--compact {
grid-template-columns: minmax(0, 360px);
}
.survey-editor-layout {
align-items: start;
}
.survey-editor-meta {
align-self: start;
}
.survey-question-editor-shell {
background: transparent;
border: 0;
padding: 0;
box-shadow: none;
}
.survey-section-head {
justify-content: space-between;
align-items: center;
}
.survey-accordion-list {
display: grid;
gap: 0.85rem;
}
.survey-accordion-item {
border: 1px solid rgba(162, 168, 180, 0.34);
border-radius: 1.3rem;
background: rgba(255, 255, 255, 0.78);
overflow: hidden;
}
.survey-accordion-header {
margin: 0;
}
.survey-accordion-header-row {
display: flex;
align-items: stretch;
}
.survey-accordion-toggle {
display: flex;
width: 100%;
align-items: flex-start;
justify-content: space-between;
gap: 1rem;
padding: 1rem 1.1rem;
background: transparent;
border: 0;
text-align: left;
}
.survey-accordion-item .handorgel__header__button,
.survey-accordion-item .handorgel__header__button:hover,
.survey-accordion-item .handorgel__header__button:focus {
background: transparent;
border-top: 0;
color: inherit;
transition: background 0.2s ease, color 0.2s ease;
}
.survey-accordion-item .handorgel__header__button:hover,
.survey-accordion-item .handorgel__header__button:focus,
.survey-accordion-item .handorgel__header--opened .handorgel__header__button {
background: var(--survey-blue);
color: #fff;
}
.survey-accordion-item .handorgel__header__button:hover .survey-accordion-index,
.survey-accordion-item .handorgel__header__button:focus .survey-accordion-index,
.survey-accordion-item .handorgel__header--opened .survey-accordion-index,
.survey-accordion-item .handorgel__header__button:hover .survey-accordion-copy strong,
.survey-accordion-item .handorgel__header__button:focus .survey-accordion-copy strong,
.survey-accordion-item .handorgel__header--opened .survey-accordion-copy strong {
color: #fff;
}
.survey-accordion-item .handorgel__header__button:hover .survey-badge,
.survey-accordion-item .handorgel__header__button:focus .survey-badge,
.survey-accordion-item .handorgel__header--opened .survey-badge {
background: rgba(255, 255, 255, 0.18);
color: #fff;
}
.survey-accordion-heading {
display: flex;
align-items: flex-start;
gap: 0.8rem;
min-width: 0;
flex: 1 1 280px;
}
.survey-accordion-index {
display: inline-flex;
min-width: 2ch;
justify-content: flex-end;
font-family: "Blogger Sans", sans-serif;
font-weight: 700;
color: var(--survey-orange);
}
.survey-accordion-copy {
display: grid;
gap: 0.2rem;
min-width: 0;
}
.survey-accordion-copy strong {
color: var(--survey-blue);
font-family: "Blogger Sans", sans-serif;
font-weight: 500;
}
.survey-accordion-copy span {
color: var(--survey-gray-dark);
font-size: 0.95rem;
}
.survey-accordion-actions {
justify-content: flex-end;
align-items: center;
flex: 1 0 auto;
margin-left: auto;
}
.survey-accordion-panel {
border-top: 1px solid rgba(162, 168, 180, 0.24);
background: rgba(255, 255, 255, 0.72);
}
.survey-accordion-panel .handorgel__content__inner {
display: grid;
gap: 1rem;
padding: 1.4rem;
}
.survey-condition-card {
padding: 1rem 1.1rem;
}
.survey-button-row--question-actions {
margin-top: 0;
align-items: center;
}
.survey-question-action-form {
margin: 0;
}
.survey-dirty-hint {
display: inline-flex;
align-items: center;
gap: 0.45rem;
justify-content: center;
margin-left: auto;
min-height: 3rem;
max-width: 100%;
padding: 0.8rem 1rem;
border-radius: 999px;
background: rgba(189, 29, 29, 0.14);
border: 1px solid rgba(189, 29, 29, 0.35);
color: #a11f1f;
font-size: 0.9rem;
font-weight: 700;
letter-spacing: 0.02em;
text-align: center;
}
.survey-dirty-hint[hidden] {
display: none !important;
}
.survey-progress {
width: 100%;
height: 0.75rem;
border-radius: 999px;
overflow: hidden;
background: rgba(162,168,180,0.22);
}
.survey-progress > span {
display: block;
height: 100%;
background: linear-gradient(90deg, var(--survey-blue) 0%, var(--survey-orange) 100%);
}
.survey-progress-bar {
display: block;
height: 100%;
background: linear-gradient(90deg, var(--survey-blue) 0%, var(--survey-orange) 100%);
}
.survey-range-output {
font-size: 2rem;
font-weight: 800;
color: var(--survey-green);
}
.survey-range-block {
gap: 1rem;
}
.survey-range-value-card {
display: grid;
place-items: center;
gap: 0.2rem;
width: min(100%, 8.5rem);
min-height: 8.5rem;
margin-inline: auto;
padding: 1rem;
border-radius: 50%;
background: radial-gradient(circle at top left, rgba(0, 100, 173, 0.12), rgba(255, 255, 255, 0.96) 62%, rgba(236, 124, 50, 0.16) 100%);
border: 1px solid rgba(0, 100, 173, 0.16);
box-shadow: 0 10px 24px rgba(34, 34, 34, 0.08);
text-align: center;
}
.survey-range-value-label {
font-size: 0.8rem;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
color: var(--survey-gray-dark);
}
.survey-range-scale {
display: flex;
justify-content: space-between;
align-items: center;
gap: 1rem;
width: 100%;
}
.survey-range-boundary {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 2.75rem;
min-height: 2.75rem;
padding: 0.45rem 0.7rem;
border-radius: 999px;
background: rgba(255, 255, 255, 0.82);
border: 1px solid rgba(0, 100, 173, 0.14);
color: var(--survey-blue);
font-weight: 700;
box-shadow: 0 6px 16px rgba(34, 34, 34, 0.05);
}
@media (min-width: 960px) {
.survey-grid-columns {
grid-template-columns: 0.95fr 1.05fr;
}
.survey-editor-layout > .survey-editor-meta {
grid-column: 1 / -1;
}
.survey-editor-layout > [data-survey-question-editor] {
grid-column: 1 / -1;
}
.survey-editor-layout > .survey-editor-side {
grid-column: 1 / -1;
}
.survey-results-layout {
grid-template-columns: minmax(320px, 0.95fr) minmax(0, 1.05fr);
}
}
@media (max-width: 767px) {
.survey-list-card__head {
flex-direction: column;
}
.survey-list-card__head-actions {
margin-left: 0;
justify-content: flex-end;
width: 100%;
}
.survey-list-card__footer {
align-items: flex-start;
}
.survey-button-row--navigation.has-back {
justify-content: space-between;
}
.survey-list-publish-help {
left: 0;
right: auto;
width: min(92vw, 19rem);
}
.survey-brand-strip {
padding: 0.75rem 0.75rem 0.25rem;
}
.survey-brand-logo.primary {
height: 64px;
max-width: min(100%, 260px);
}
.survey-brand-logo.secondary {
height: 75px;
max-width: 100%;
}
.survey-kpis--compact {
grid-template-columns: 1fr;
}
.survey-accordion-header {
margin: 0;
}
.survey-accordion-actions {
width: auto;
justify-content: flex-end;
}
.survey-accordion-toggle {
padding: 0.95rem 1rem;
}
}
/* --- Fragen-Sortierung (Drag & Drop) --- */
.survey-accordion-header-row {
display: flex;
align-items: stretch;
}
.survey-accordion-sort-handle {
position: relative;
flex: 0 0 auto;
min-width: 3.5rem;
padding: 0 1rem;
border: 0;
border-left: 1px solid rgba(162, 168, 180, 0.18);
background: transparent;
cursor: grab;
transition: background 0.2s ease, color 0.2s ease;
}
.survey-accordion-sort-handle:active {
cursor: grabbing;
}
.survey-accordion-item .handorgel__header__button:hover + .survey-accordion-sort-handle,
.survey-accordion-item .handorgel__header__button:focus + .survey-accordion-sort-handle,
.survey-accordion-item .handorgel__header--opened .survey-accordion-sort-handle,
.survey-accordion-sort-handle:hover,
.survey-accordion-sort-handle:focus {
background: var(--survey-blue);
color: #fff;
}
.survey-sort-icon {
position: relative;
display: inline-flex;
width: 1.14rem;
height: 1.52rem;
align-items: center;
justify-content: center;
color: #58a6da;
transform: translateY(1px);
}
.survey-sort-icon svg {
display: block;
width: 100%;
height: 100%;
transform: translateY(5px);
}
.survey-sort-icon svg path:first-child {
transform: translateY(1.4px);
transform-box: fill-box;
transform-origin: center;
}
.survey-sort-icon svg path:nth-child(2) {
transform: translateY(-1.4px);
transform-box: fill-box;
transform-origin: center;
}
.survey-sort-icon svg path[stroke] {
stroke-width: 2px;
}
.survey-question-order-save-shell {
position: fixed;
bottom: 1.5rem;
right: 1.5rem;
z-index: 40;
transform: translate(120%, 0);
opacity: 0;
pointer-events: none;
transition: transform 0.26s ease, opacity 0.26s ease;
}
.survey-question-order-save-shell.is-visible {
transform: translate(0, 0);
opacity: 1;
pointer-events: auto;
}
.survey-question-order-save {
box-shadow: 0 18px 40px rgba(0, 59, 102, 0.24);
}
.survey-accordion-item.is-reordering {
box-shadow: 0 20px 44px rgba(0, 59, 102, 0.18);
}
.survey-accordion-item.sortable-ghost {
opacity: 0.55;
}
@media (max-width: 767px) {
.survey-accordion-sort-handle {
min-width: 3.1rem;
padding: 0 0.8rem;
}
.survey-question-order-save-shell {
top: auto;
right: 0.85rem;
bottom: 0.85rem;
transform: translate(0, 130%);
}
.survey-question-order-save-shell.is-visible {
transform: translate(0, 0);
}
}
/* --- Themenbereiche (Abschnitte) im Editor --- */
.survey-structure-actions {
align-items: center;
gap: 0.75rem 1rem;
margin-bottom: 1rem;
}
.survey-accordion-item--section {
border-left: 5px solid var(--survey-orange, #EC7C32);
background: linear-gradient(90deg, rgba(236, 124, 50, 0.08), rgba(236, 124, 50, 0) 60%);
}
.survey-accordion-item--section .survey-accordion-index--section {
font-family: "Blogger Sans", sans-serif;
color: var(--survey-orange, #EC7C32);
}
.survey-section-kicker {
display: block;
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--survey-orange, #EC7C32);
line-height: 1.2;
}
.survey-accordion-item .handorgel__header__button:hover .survey-section-kicker,
.survey-accordion-item .handorgel__header__button:focus .survey-section-kicker,
.survey-accordion-item .handorgel__header--opened .survey-section-kicker {
color: #fff;
}
.survey-section-add-row {
display: flex;
justify-content: flex-end;
padding: 0.15rem 0 0.9rem;
}
.survey-accordion-list.is-order-dirty .survey-section-add-row {
display: none;
}
.survey-button.ghost {
background: transparent;
color: var(--survey-blue, #0064AD);
border: 1px dashed rgba(0, 100, 173, 0.45);
box-shadow: none;
}
.survey-button.ghost:hover,
.survey-button.ghost:focus {
background: rgba(0, 100, 173, 0.08);
border-style: solid;
}
.survey-field-hint {
font-size: 0.9rem;
color: #555E68;
line-height: 1.4;
}
.survey-alert.info {
background: rgba(0, 100, 173, 0.08);
border: 1px solid rgba(0, 100, 173, 0.25);
color: #0f4f88;
}
/* --- Rich-Text (Quill) --- */
.survey-rich-editor {
border-radius: 0.6rem;
border: 1px solid rgba(162, 168, 180, 0.6);
background: #fff;
overflow: hidden;
}
.survey-rich-editor .ql-toolbar.ql-snow {
border: 0;
border-bottom: 1px solid rgba(162, 168, 180, 0.4);
background: #f7fafc;
font-family: inherit;
}
.survey-rich-editor .ql-container.ql-snow {
border: 0;
font-family: inherit;
font-size: 1rem;
}
.survey-rich-editor .ql-editor {
min-height: 7.5rem;
line-height: 1.5;
}
.survey-rich-editor .ql-editor p,
.survey-rich-editor .ql-editor ul,
.survey-rich-editor .ql-editor ol {
margin: 0 0 0.6em;
}
.survey-rich-text p,
.survey-rich-text ul,
.survey-rich-text ol {
margin: 0 0 0.75em;
}
.survey-rich-text ul,
.survey-rich-text ol {
padding-left: 1.4em;
}
.survey-rich-text li {
margin-bottom: 0.25em;
}
.survey-rich-text > :last-child {
margin-bottom: 0;
}
/* --- Reader: Antwortbereich --- */
[data-survey-answer-zone] textarea {
width: 100%;
box-sizing: border-box;
border-radius: 1rem;
border: 1px solid rgba(162, 168, 180, 0.5);
padding: 0.8rem 0.9rem;
background: rgba(255, 255, 255, 0.98);
color: var(--survey-black);
}
/* Validierungsfehler (z. B. Pflicht-Bewertung ohne gewählten Wert) */
[data-survey-answer-group] ul {
margin: 0;
padding: 0.8rem 1.1rem;
list-style: none;
border-radius: 1.2rem;
border: 1px solid rgba(157, 82, 118, 0.28);
background: rgba(157, 82, 118, 0.1);
color: var(--survey-purple);
font-weight: 600;
}
/* --- Reader: "Keine Antwort" bei optionalen Fragen --- */
.survey-no-answer-card {
background: rgba(233, 233, 235, 0.55);
border-style: dashed;
}
.survey-optional-hint {
margin-top: 0.35rem;
font-size: 0.9rem;
color: var(--survey-gray-dark);
}
/* Die nicht gewählte Seite wird nur gedimmt, bleibt aber bedienbar -
ein Klick wechselt jederzeit zurück. */
.survey-dimmed {
opacity: 0.45;
transition: opacity 0.2s ease;
}
/* --- Reader: Themenbereich-Kopfzeile --- */
.survey-section-context {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: baseline;
gap: 0.35rem 1rem;
margin-bottom: 0.75rem;
padding-bottom: 0.5rem;
border-bottom: 1px solid rgba(162, 168, 180, 0.3);
}
.survey-section-context .survey-section-counter {
margin-left: auto;
text-align: right;
}
.survey-section-context .survey-section-kicker {
font-size: 0.78rem;
}
.survey-section-context strong {
font-family: "Blogger Sans", sans-serif;
font-size: 1.15rem;
color: var(--survey-blue, #0064AD);
}
.survey-section-context .survey-section-counter {
color: #555E68;
font-size: 0.95rem;
}
/* --- Ergebnisseite: Themenbereich-Überschriften --- */
.survey-results-section-head {
margin: 0.75rem 0 0.25rem;
padding: 0.6rem 1rem;
border-left: 5px solid var(--survey-orange, #EC7C32);
background: rgba(236, 124, 50, 0.08);
border-radius: 0 0.75rem 0.75rem 0;
}
.survey-results-section-head h3 {
margin: 0;
font-family: "Blogger Sans", sans-serif;
color: var(--survey-blue, #0064AD);
}
.survey-results-section-head .survey-section-kicker {
margin-bottom: 0.1rem;
}
/* --- Rich-Text: Fett/Kursiv explizit (die globale font-style-Rückstellung der Shell überschreiben) --- */
.survey-shell .survey-rich-text strong,
.survey-shell .survey-rich-text b,
.survey-shell .ql-editor strong,
.survey-shell .ql-editor b {
font-weight: 700;
}
.survey-shell .survey-rich-text em,
.survey-shell .survey-rich-text i,
.survey-shell .ql-editor em,
.survey-shell .ql-editor i {
font-style: italic;
}
/* Der Editor erbt sonst das font-weight 600 des umgebenden Labels Text wirkt dann immer fett. */
.survey-shell .survey-label .survey-rich-editor,
.survey-shell .ql-editor,
.survey-shell .ql-editor p,
.survey-shell .ql-editor li {
font-weight: 400;
font-style: normal;
}
.survey-label--rich-text {
margin-bottom: -0.35rem;
}
.survey-label--rich-text + .survey-rich-editor {
margin-bottom: 0.4rem;
}
/* --- Umfragen-Übersicht: Bereichsname rechts neben "Neue Umfrage anlegen" --- */
.survey-list-toolbar {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 0.75rem 1rem;
}
.survey-area-title {
margin-left: auto;
font-family: "Blogger Sans", sans-serif;
font-size: 1.45rem;
font-weight: 500;
color: var(--survey-blue, #0064AD);
letter-spacing: 0.01em;
}