:root {
    color-scheme: light;
    --bg: #f7f7f4;
    --surface: #ffffff;
    --text: #222629;
    --muted: #647076;
    --line: #dce2df;
    --accent: #18635f;
    --accent-strong: #0f4b48;
    --warn: #9f2d20;
    --yes: #dceee6;
    --maybe: #fff1c6;
    --no: #f0f1f2;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.site-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.35rem clamp(0.65rem, 2.5vw, 2rem);
    border-bottom: 0;
    background: transparent;
}

.brand {
    display: inline-flex;
    align-items: center;
    color: var(--text);
    font-size: 1.1rem;
    font-weight: 760;
    text-decoration: none;
    transition: opacity 0.18s ease;
}

.brand img {
    display: block;
    width: 8.75rem;
    max-width: 48vw;
    height: auto;
}

.tagline,
.meta,
small {
    color: var(--muted);
}

.sr-only,
.visually-hidden-form {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.tagline {
    font-size: 0.9rem;
    transition: opacity 0.18s ease;
}

.is-scrolled .brand,
.is-scrolled .tagline {
    opacity: 0.5;
}

.page {
    flex: 1 0 auto;
    width: min(1360px, calc(100% - 2rem));
    margin: 0 auto;
    padding: 0.6rem 0 2rem;
}

.site-footer {
    flex: 0 0 auto;
    width: min(1360px, calc(100% - 2rem));
    margin: 0 auto;
    padding: 0 0 1.5rem;
    color: var(--muted);
    font-size: 0.86rem;
}

.footer-inner {
    display: grid;
    justify-items: center;
    border-top: 1px solid var(--line);
    padding-top: 0.85rem;
    text-align: center;
}

.site-statistics {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.35rem 0.85rem;
    margin: 0 0 0.55rem;
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 0.35rem 0.75rem;
    background: #eef3f1;
    list-style: none;
    color: var(--muted);
    font-variant-numeric: tabular-nums;
}

.site-statistics li {
    display: inline-flex;
    align-items: baseline;
    gap: 0.25rem;
}

.site-statistics strong {
    color: var(--text);
    font-weight: 760;
}

.footer-links {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.site-footer a,
.imprint summary {
    color: var(--muted);
    font-weight: 650;
}

.site-footer a {
    text-decoration: none;
}

.site-footer a:hover,
.site-footer a:focus-visible,
.imprint summary:hover,
.imprint summary:focus-visible {
    color: var(--accent);
    text-decoration: underline;
}

.powered-by {
    display: inline-flex;
}

.footer-separator {
    color: #9ba4a8;
}

.imprint {
    display: inline-block;
    text-align: center;
}

.imprint summary {
    cursor: pointer;
    list-style: none;
    margin: 0 auto;
    width: max-content;
}

.imprint summary::-webkit-details-marker {
    display: none;
}

.imprint summary::after {
    content: "+";
    display: inline-block;
    margin-left: 0.4rem;
    color: var(--muted);
    text-decoration: none;
}

.imprint[open] summary::after {
    content: "-";
}

.imprint-content {
    display: grid;
    gap: 0.65rem;
    margin-top: 0.8rem;
    width: min(calc(100vw - 2rem), 42rem);
    text-align: left;
}

.imprint-content p,
.imprint-content dl,
.imprint-content dd {
    margin: 0;
}

.imprint-content dl {
    display: grid;
    gap: 0.45rem;
}

.imprint-content dl div {
    display: grid;
    grid-template-columns: minmax(8rem, 0.45fr) minmax(0, 1fr);
    gap: 0.5rem;
}

.imprint-content dt {
    color: var(--text);
    font-weight: 760;
}

.hero,
.poll-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 1rem;
    margin-bottom: 0.65rem;
}

h1,
h2,
h3,
p {
    margin-top: 0;
}

h1 {
    max-width: 24ch;
    font-size: 4rem;
    line-height: 0.98;
    margin-bottom: 0.75rem;
}

.poll-head h1 {
    font-size: clamp(1.8rem, 4vw, 3rem);
    margin-bottom: 0.35rem;
}

.poll-head .eyebrow {
    margin-bottom: 0.25rem;
}

.poll-head .meta,
.poll-head .lead {
    margin-bottom: 0.2rem;
}

.hero-title-options {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 0.35em;
    row-gap: 0.05em;
}

.hero-title-option {
    display: inline;
    width: auto;
    min-height: 0;
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
    font: inherit;
    font-weight: inherit;
    line-height: inherit;
    text-align: left;
    color: #647276;
}

.hero-title-option.is-active {
    color: inherit;
    text-decoration: underline;
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.12em;
}

.hero-title-option:hover,
.hero-title-option:focus-visible {
    color: var(--accent);
}

h2 {
    font-size: 1.35rem;
    margin-bottom: 1rem;
}

.lead {
    max-width: 78ch;
    color: #3d464a;
    font-size: 1.08rem;
    line-height: 1.55;
}

.hero .lead {
    max-width: 96ch;
    margin-bottom: 0;
}

.eyebrow {
    margin-bottom: 0.5rem;
    color: var(--accent);
    font-weight: 760;
    text-transform: uppercase;
    font-size: 0.75rem;
}

.panel,
.notice {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: clamp(1rem, 3vw, 1.5rem);
    margin-bottom: 1rem;
}

.narrow {
    max-width: 42rem;
}

.notice {
    background: #eef6f5;
}

.identity-notice {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
    padding-block: 0.75rem;
}

.identity-notice strong,
.identity-notice span {
    display: block;
}

.identity-notice span {
    margin-top: 0.15rem;
    color: var(--muted);
    font-size: 0.92rem;
}

.identity-actions {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.identity-actions form {
    margin: 0;
}

.identity-actions .button {
    gap: 0.4rem;
    min-height: 2.25rem;
    padding: 0.42rem 0.7rem;
    white-space: nowrap;
}

.flash-stack {
    display: grid;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.flash {
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 0.75rem 1rem;
    background: #fff;
    font-weight: 650;
}

.flash-success {
    border-color: #bed9cd;
    background: #eef8f3;
}

.flash-error {
    border-color: #e6c5bf;
    background: #fff3f1;
    color: var(--warn);
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.create-form {
    display: grid;
    gap: 1rem;
}

.create-main {
    display: grid;
    gap: 1rem;
    min-width: 0;
}

.title-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 0.75rem;
}

.title-row .button,
.form-submit-bottom .button {
    min-height: 2.35rem;
    padding: 0.45rem 0.75rem;
    white-space: nowrap;
}

.form-submit-bottom {
    display: flex;
    grid-column: 1 / -1;
    justify-content: flex-end;
    padding-top: 0.25rem;
}

.timezone-note {
    margin-bottom: 0;
}

.wide {
    grid-column: 1 / -1;
}

label span,
legend,
.field-label {
    display: block;
    margin-bottom: 0.35rem;
    font-weight: 680;
}

input,
textarea,
select {
    width: 100%;
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 0.7rem 0.8rem;
    font: inherit;
    background: #fff;
    color: var(--text);
}

textarea {
    resize: vertical;
}

.check {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
}

.check input {
    width: auto;
    margin-top: 0.2rem;
}

.actions,
.share-box,
.inline-form {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.poll-head .share-box {
    justify-content: flex-end;
    gap: 0.4rem;
    flex: 0 0 auto;
}

.poll-head .button,
.poll-head button {
    width: auto;
    min-width: 0;
    min-height: 2rem;
    padding: 0.28rem 0.55rem;
    font-size: 0.88rem;
}

.poll-head .participant-link-button {
    color: var(--accent);
}

.poll-head .identity-mini {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.25rem;
    min-height: 2rem;
    color: var(--muted);
    font-size: 0.82rem;
    font-weight: 650;
    line-height: 1.2;
    white-space: nowrap;
}

.poll-head .identity-mini form {
    display: inline;
    margin: 0;
}

.poll-head .identity-link-button {
    display: inline;
    min-height: 0;
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
    color: var(--accent);
    font: inherit;
    font-weight: 760;
    line-height: inherit;
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.poll-head .identity-link-button:hover,
.poll-head .identity-link-button:focus-visible {
    color: var(--accent-strong);
}

.inline-add {
    display: grid;
    grid-template-columns: minmax(8rem, 1fr) auto;
    align-items: end;
    gap: 0.5rem;
    max-width: 20rem;
}

.inline-add span {
    grid-column: 1 / -1;
}

.button,
button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.5rem;
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 0.55rem 0.9rem;
    background: #fff;
    color: var(--text);
    font: inherit;
    font-weight: 680;
    text-decoration: none;
    cursor: pointer;
}

.icon-button {
    width: auto;
    min-width: 2.5rem;
    padding: 0.45rem 0.7rem;
}

.button-icon {
    width: 1rem;
    height: 1rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
    pointer-events: none;
}

.icon-only-button {
    min-width: 2.5rem;
    padding: 0.55rem;
}

.date-builder {
    display: grid;
    grid-template-columns: minmax(0, clamp(15rem, 38%, 30rem)) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.calendar-panel,
.time-panel {
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 0.85rem;
    background: #fbfcfb;
}

.time-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.65rem;
}

.time-toolbar .field-label {
    margin-bottom: 0;
}

.time-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.time-step-label {
    color: var(--muted);
    font-size: 0.78rem;
    font-variant-numeric: tabular-nums;
    font-weight: 760;
    line-height: 1.2;
    white-space: nowrap;
}

.calendar-toolbar {
    display: grid;
    grid-template-columns: 2.5rem 1fr 2.5rem;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.6rem;
    text-align: center;
}

.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: clamp(0.16rem, 0.5vw, 0.3rem);
}

.calendar-weekdays {
    margin-bottom: 0.3rem;
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 760;
    text-align: center;
}

.calendar-day,
.time-chip,
.selected-chip {
    min-height: 2.15rem;
    border-radius: 5px;
    padding: 0.35rem 0.45rem;
    font-size: 0.95rem;
}

.calendar-days {
    user-select: none;
    touch-action: none;
}

.calendar-day {
    width: 100%;
    min-height: clamp(2rem, 4vw, 2.85rem);
    aspect-ratio: 1;
    border-color: #ccd6d1;
    background: #fff;
}

.calendar-day:hover,
.calendar-day:focus-visible {
    border-color: var(--accent);
    box-shadow: inset 0 0 0 1px var(--accent);
}

.calendar-day.is-outside {
    color: #98a2a7;
    background: #f3f5f4;
}

.calendar-day.is-today {
    border-color: #8ab17e;
    box-shadow: inset 0 0 0 2px #8ab17e;
}

.calendar-day.is-selected,
.time-chip.is-selected,
.selected-chip {
    border-color: #97c287;
    background: #e8f4e2;
    color: #1f471d;
}

.calendar-day.is-selected {
    border-color: #6fa33c;
    background: #9c6;
    color: #173d14;
    box-shadow: none;
}

.calendar-day.is-selected.is-outside {
    background: #85b957;
    color: #173d14;
}

.time-matrix-wrap {
    overflow-x: auto;
}

.time-matrix-empty[hidden] {
    display: none;
}

.time-matrix {
    width: 100%;
    min-width: 28rem;
    border-collapse: separate;
    border-spacing: 2px;
    user-select: none;
}

.time-matrix th,
.time-matrix td {
    padding: 0;
    text-align: center;
}

.time-matrix thead th {
    background: #eef1ef;
    color: var(--muted);
    font-size: 0.82rem;
    font-weight: 760;
    padding: 0.22rem 0.35rem;
}

.time-matrix tbody th {
    width: 5.8rem;
    color: var(--text);
    font-variant-numeric: tabular-nums;
    font-weight: 760;
    text-align: center;
}

.time-row-button {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.35rem;
    align-items: center;
    width: 100%;
    min-width: 5.2rem;
    min-height: 1.9rem;
    border-color: #ccd6d1;
    border-radius: 2px;
    padding: 0.25rem 0.45rem;
    background: #fff;
    color: var(--text);
    font-variant-numeric: tabular-nums;
}

.time-row-edit-input {
    width: 100%;
    min-width: 5.2rem;
    min-height: 1.9rem;
    border: 1px solid #ccd6d1;
    border-radius: 2px;
    padding: 0.25rem 0.45rem;
    background: #fff;
    color: var(--text);
    font: inherit;
    font-variant-numeric: tabular-nums;
    font-weight: 760;
    text-align: center;
}

.time-row-edit-input:focus-visible {
    border-color: var(--accent);
    box-shadow: inset 0 0 0 1px var(--accent);
    outline: none;
}

.time-row-edit-input.is-invalid {
    border-color: var(--warn);
    background: #fff3f1;
}

.time-row-button::after {
    content: "all";
    color: var(--muted);
    font-size: 0.66rem;
    font-weight: 760;
    line-height: 1.25;
    text-transform: uppercase;
}

.time-row-button:hover,
.time-row-button:focus-visible {
    border-color: var(--accent);
    box-shadow: inset 0 0 0 1px var(--accent);
}

.time-row-button.is-selected {
    border-color: #6fa33c;
    background: #9c6;
    color: #173d14;
}

.time-row-button.is-selected::after {
    color: #173d14;
}

.time-row-button.is-partial {
    border-color: #d6bd4f;
    background: #ffec76;
    color: #4e3c00;
}

.time-row-button.is-partial::after {
    content: "some";
    color: #4e3c00;
}

.time-slot {
    width: 100%;
    min-height: 1.9rem;
    border-color: #ccd6d1;
    border-radius: 2px;
    padding: 0;
    background: #fff;
    font-weight: 760;
    touch-action: none;
}

.time-slot:hover,
.time-slot:focus-visible {
    border-color: var(--accent);
    box-shadow: inset 0 0 0 1px var(--accent);
}

.time-slot.is-selected {
    border-color: #6fa33c;
    background: #9c6;
    color: #173d14;
}

.time-manual-row th {
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 760;
}

.manual-time-cell {
    display: grid;
    grid-template-columns: minmax(3.5rem, 1fr) 1.65rem;
    gap: 0.16rem;
}

.manual-time-cell input {
    min-height: 1.85rem;
    border-radius: 2px;
    padding: 0.2rem 0.28rem;
    font-size: 0.8rem;
    text-align: center;
}

.manual-time-cell input.is-invalid {
    border-color: var(--warn);
    background: #fff3f1;
}

.time-manual-add {
    width: 1.65rem;
    min-width: 1.65rem;
    min-height: 1.85rem;
    border-radius: 2px;
    padding: 0;
    color: var(--accent);
    line-height: 1;
}

.selected-options {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 0.8rem;
}

.selected-options {
    margin-top: 0.8rem;
    margin-bottom: 0;
}

.selected-options .meta {
    margin-bottom: 0;
}

.choice-builder {
    display: none;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 0.85rem;
    background: #fbfcfb;
}

.choice-list {
    display: grid;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
}

.choice-empty {
    margin-bottom: 0;
}

.choice-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 1.75rem;
    gap: 0.35rem;
    align-items: center;
}

.choice-row input,
.choice-add-row input {
    min-height: 2.15rem;
    border-radius: 4px;
    padding: 0.45rem 0.55rem;
}

.choice-row .matrix-action {
    width: 1.75rem;
    min-width: 1.75rem;
    min-height: 1.75rem;
}

.choice-add-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.5rem;
    align-items: center;
}

.needs-selection {
    outline: 3px solid #d8ab43;
    outline-offset: 3px;
}

.js [data-time-mode] [data-manual-options],
.js [data-choice-mode] [data-manual-options] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.js [data-choice-mode] [data-date-builder] {
    display: none;
}

.js [data-choice-mode] [data-choice-builder] {
    display: block;
}

.js [data-time-mode] [data-choice-builder] {
    display: none;
}

.advanced-fields,
.collapsible-panel {
    border-top: 1px solid var(--line);
    padding-top: 0.75rem;
}

.collapsible-panel summary {
    cursor: pointer;
    color: var(--accent);
    font-weight: 760;
}

.collapsible-panel[open] summary {
    margin-bottom: 1rem;
}

.settings-sections {
    display: grid;
    gap: 0.5rem;
}

.settings-form {
    display: grid;
    gap: 1rem;
}

.advanced-fields > .field-label {
    margin-bottom: 0.5rem;
}

.setting-section {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcfb;
}

.setting-section summary {
    cursor: pointer;
    list-style: none;
    padding: 0.7rem 0.8rem;
    font-weight: 760;
}

.setting-section summary::-webkit-details-marker {
    display: none;
}

.setting-section summary::after {
    content: "+";
    float: right;
    color: var(--muted);
    font-weight: 760;
}

.setting-section[open] summary {
    border-bottom: 1px solid var(--line);
    color: var(--accent);
}

.setting-section.is-dirty summary {
    border-color: #b8d4d1;
    background: #eef6f5;
}

.setting-section[open] summary::after {
    content: "-";
}

.setting-panel {
    padding: 0.85rem;
}

.setting-panel label {
    display: block;
}

.editable-title {
    color: inherit;
    text-decoration: none;
}

.editable-title:hover {
    color: var(--accent);
}

.admin-head {
    align-items: flex-start;
    margin-bottom: 1.25rem;
}

.admin-title-block {
    min-width: 0;
}

.admin-head h1 {
    margin-bottom: 0.65rem;
}

.admin-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.admin-stats span {
    display: inline-flex;
    align-items: center;
    min-height: 1.75rem;
    border: 1px solid #d6dedb;
    border-radius: 999px;
    padding: 0.25rem 0.65rem;
    background: #fff;
    color: var(--muted);
    font-size: 0.9rem;
    font-weight: 650;
}

.admin-actions {
    justify-content: flex-end;
    align-self: flex-start;
    max-width: 44rem;
}

.share-link {
    flex: 1 1 18rem;
    min-width: min(100%, 18rem);
    max-width: 34rem;
}

.share-link span {
    display: block;
    margin-bottom: 0.25rem;
    color: var(--muted);
    font-size: 0.82rem;
    font-weight: 680;
}

.share-link-url {
    display: block;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 0.58rem 0.75rem;
    background: #fff;
    color: var(--accent);
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.share-copy-button {
    min-width: 3.4rem;
    padding-inline: 0.65rem;
}

.admin-layout {
    display: grid;
    gap: 1rem;
    align-items: start;
}

.admin-main,
.admin-sidebar {
    display: grid;
    gap: 1rem;
    min-width: 0;
}

.admin-sidebar .panel,
.admin-main .panel {
    margin-bottom: 0;
}

.section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.section-heading h2 {
    margin-bottom: 0.2rem;
}

.section-heading .meta {
    margin-bottom: 0;
}

.settings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.admin-toggle-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.admin-toggle {
    min-height: 4.75rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 0.85rem;
    background: #fbfcfb;
}

.admin-toggle span {
    display: grid;
    gap: 0.18rem;
    margin-bottom: 0;
    font-weight: 500;
}

.admin-toggle strong {
    color: var(--text);
    font-weight: 760;
}

.admin-toggle small {
    line-height: 1.35;
}

.admin-section {
    margin-bottom: 0;
}

.stack-form {
    display: grid;
    gap: 0.75rem;
}

.stack-form + .stack-form {
    margin-top: 0.75rem;
}

.compact-panel h2 {
    font-size: 1.15rem;
    margin-bottom: 0.8rem;
}

.primary {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}

.primary:hover {
    background: var(--accent-strong);
}

.secondary {
    background: #eef6f5;
}

.danger {
    color: var(--warn);
    border-color: #e6c5bf;
}

.matrix-wrap {
    width: 100%;
    overflow-x: auto;
    margin-bottom: 1rem;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: var(--surface);
    max-height: min(72vh, 46rem);
}

.matrix,
.response-matrix {
    border-collapse: separate;
    border-spacing: 0;
    min-width: max-content;
}

.matrix,
.response-matrix {
    width: max-content;
    min-width: 100%;
}

.matrix th,
.matrix td,
.response-matrix th,
.response-matrix td {
    border-right: 1px solid #fff;
    border-bottom: 1px solid #fff;
    padding: 0.12rem 0.16rem;
    text-align: center;
    vertical-align: middle;
}

.matrix thead th,
.response-matrix thead th {
    background: #f0f3f1;
    position: sticky;
    top: 0;
    z-index: 3;
    color: #304045;
    font-size: 0.7rem;
    font-weight: 760;
    white-space: nowrap;
}

.time-option-matrix thead th {
    box-sizing: border-box;
    height: 1.05rem;
    padding-block: 0;
    line-height: 1;
}

.matrix .sticky-name,
.response-matrix .sticky-name {
    position: sticky;
    left: 0;
    z-index: 2;
    min-width: 4.8rem;
    max-width: 6.2rem;
    border-right: 1px solid var(--line);
    background: #f8faf9;
    text-align: left;
}

.matrix thead .sticky-name,
.response-matrix thead .sticky-name {
    z-index: 4;
    background: #e8eeee;
}

.option-month {
    background: #e8eeee !important;
}

.time-option-matrix thead tr:nth-child(2) th {
    top: 1.05rem;
}

.time-option-matrix thead tr:nth-child(3) th {
    top: 2.1rem;
}

.time-option-matrix thead .sticky-name {
    top: 0;
}

.option-slot,
.option-time {
    min-width: 1.95rem;
    max-width: 1.95rem;
}

.option-slot {
    line-height: 1.1;
    white-space: normal !important;
}

.option-slot span,
.option-day span,
.option-slot time {
    display: block;
}

.option-weekday {
    font-size: 0.66rem;
}

.option-date {
    font-size: 0.74rem;
}

.option-slot time {
    color: #1b6a77;
    font-size: 0.68rem;
    font-variant-numeric: tabular-nums;
}

.option-day {
    line-height: 1.1;
}

.option-time {
    color: #1b6a77 !important;
    font-variant-numeric: tabular-nums;
}

.choice-option {
    min-width: 4.3rem;
    max-width: 8rem;
}

.choice-option span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.participant-cell {
    height: 1.45rem;
    font-size: 0.78rem;
    font-weight: 650;
}

.participant-name {
    display: block;
    max-width: 100%;
    overflow-wrap: anywhere;
    vertical-align: middle;
    white-space: normal;
}

.matrix-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.45rem;
    min-width: 1.45rem;
    min-height: 1.45rem;
    border: 1px solid transparent;
    border-radius: 4px;
    padding: 0;
    background: transparent;
    color: var(--accent);
    font-size: 0.95rem;
    line-height: 1;
    text-decoration: none;
}

.matrix-action:hover,
.matrix-action:focus-visible {
    border-color: var(--line);
    background: #fff;
}

.danger-icon {
    color: var(--warn);
}

.save-icon {
    color: var(--accent-strong);
}

.vote {
    position: relative;
    min-width: 1.72rem;
    height: 1.42rem;
    padding: 0 !important;
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1;
}

.vote-mark {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    transform: translateY(0.02rem);
}

.vote-yes {
    background: #cfe8c4;
    color: #143d12;
}

.vote-maybe {
    background: #fff0be;
    color: #5d4700;
}

.vote-no {
    background: #ead8df;
    color: #5a2435;
}

.vote-unanswered {
    background: #eef0f2;
    color: #707a80;
}

.inline-vote-form {
    margin-bottom: 1rem;
}

.inline-response-row .sticky-name,
.is-own-response .sticky-name {
    min-width: 6.6rem;
    max-width: 8.2rem;
}

.inline-response-row .sticky-name:has(.is-email-open),
.is-own-response .sticky-name:has(.is-email-open) {
    min-width: 11rem;
    max-width: 14rem;
}

.inline-response-row .sticky-name {
    background: #f4f8f7;
}

.inline-response-row.is-hidden {
    display: none;
}

.participant-display-row.is-editing-response {
    display: none;
}

.name-email-fields {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 0.22rem;
    min-width: 0;
}

.name-email-fields.is-email-open {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
}

.inline-name-input,
.inline-email-input {
    height: 1.55rem;
    min-height: 1.55rem;
    border-radius: 4px;
    padding: 0.18rem 0.32rem;
    font-size: 0.78rem;
}

.inline-email-input {
    display: none;
}

.name-email-fields.is-email-open .inline-email-input {
    display: block;
}

.name-email-fields.is-email-open .email-toggle {
    display: none;
}

.inline-icon-button {
    width: 1.55rem;
    min-width: 1.55rem;
    min-height: 1.55rem;
    border-radius: 4px;
    padding: 0.16rem;
    color: var(--accent);
    line-height: 1;
}

.inline-icon-button:hover,
.inline-icon-button:focus-visible {
    border-color: var(--accent);
}

.inline-save-button {
    color: var(--accent-strong);
}

.edit-icon {
    color: var(--accent);
}

.inline-save-button.is-saving,
[data-inline-save].is-saving {
    opacity: 0.62;
    cursor: progress;
}

.inline-save-button.is-saved,
[data-inline-save].is-saved {
    border-color: #a9cc9b;
    background: #dcefd4;
    color: #143d12;
}

.inline-save-button.is-error,
[data-inline-save].is-error {
    border-color: #e6c5bf;
    background: #fff3f1;
    color: var(--warn);
}

.inline-save-alert {
    display: inline-block;
    max-width: min(34rem, 100%);
    margin: 0 0 0.5rem;
    border: 1px solid #e6c5bf;
    border-radius: 6px;
    background: #fff3f1;
    color: var(--warn);
    padding: 0.45rem 0.65rem;
    font-size: 0.9rem;
    font-weight: 650;
}

.inline-save-alert[hidden] {
    display: none;
}

.inline-vote-cell {
    min-width: 2.25rem;
    padding: 0.03rem !important;
    background: #fbfcfb;
}

.inline-vote-picker {
    display: grid;
    gap: 0;
}

.inline-vote-option {
    display: grid;
    grid-template-columns: 0.72rem minmax(0, 1fr);
    align-items: center;
    gap: 0.08rem;
    min-height: 0.94rem;
    border-radius: 2px;
    padding: 0 0.1rem;
    cursor: pointer;
    font-size: 0.68rem;
    line-height: 0.95;
    touch-action: none;
}

.inline-vote-option.vote-yes {
    background: #eef7ea;
    color: #24503c;
}

.inline-vote-option.vote-maybe {
    background: #fff8dd;
    color: #684d12;
}

.inline-vote-option.vote-no {
    background: #f7edf1;
    color: #5a2435;
}

.inline-vote-option input {
    align-self: center;
    width: 0.68rem;
    height: 0.68rem;
    margin: 0;
    accent-color: currentColor;
}

.inline-vote-option span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0.94rem;
    font-weight: 760;
    line-height: 1;
    transform: translateY(0.06rem);
}

.inline-vote-option:focus-within {
    box-shadow: inset 0 0 0 1px currentColor;
}

.inline-vote-option.vote-yes:has(input:checked) {
    background: #cfe8c4;
    color: #143d12;
}

.inline-vote-option.vote-maybe:has(input:checked) {
    background: #ffe9a1;
    color: #4f3900;
}

.inline-vote-option.vote-no:has(input:checked) {
    background: #e8cbd5;
    color: #4b1d2c;
}

.row-action-header,
.row-action-cell {
    position: sticky;
    right: 0;
    z-index: 2;
    min-width: 1.9rem;
    max-width: 1.9rem;
    background: #f8faf9;
    border-left: 1px solid var(--line);
}

.row-action-header {
    z-index: 5;
    background: #e8eeee;
}

.inline-row-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
}

.inline-row-actions .matrix-action {
    width: 1.4rem;
    min-width: 1.4rem;
    min-height: 1.4rem;
}

.matrix thead .best-option {
    background: #dfece9;
    color: #173f3b;
}

.totals .best-option {
    background: #465f78;
}

.pill {
    display: inline-flex;
    margin-left: 0.35rem;
    border-radius: 999px;
    padding: 0.1rem 0.45rem;
    background: #edf0ef;
    color: var(--muted);
    font-size: 0.75rem;
    font-weight: 700;
}

.compact-pill {
    display: block;
    width: fit-content;
    margin: 0.1rem auto 0;
    padding: 0.02rem 0.22rem;
    font-size: 0.58rem;
}

.totals th,
.totals td {
    position: sticky;
    bottom: 0;
    z-index: 2;
    background: #56627f;
    color: #fff;
    font-variant-numeric: tabular-nums;
}

.totals .sticky-name {
    z-index: 3;
    background: #f8faf9;
    color: var(--text);
}

.totals .row-action-cell {
    z-index: 3;
    background: #56627f;
}

.is-own-response .sticky-name {
    background: #eef6f5;
}

.response-panel {
    scroll-margin-top: 5rem;
}

.response-matrix-wrap {
    width: 100%;
    max-height: min(62vh, 34rem);
    overflow: auto;
    margin: 1rem 0;
    border: 1px solid var(--line);
    border-radius: 6px;
}

.response-choice {
    width: 4.2rem;
}

.vote-radio {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.78rem;
    height: 1.55rem;
    margin: 0 auto;
    border: 1px solid transparent;
    border-radius: 4px;
    cursor: pointer;
    touch-action: none;
}

.vote-radio input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.vote-radio span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    border-radius: 4px;
    font-weight: 760;
}

.vote-radio input:focus-visible + span {
    box-shadow: inset 0 0 0 1px currentColor;
}

.vote-radio input:disabled + span {
    opacity: 0.55;
    cursor: not-allowed;
}

.vote-radio.vote-yes:has(input:checked) {
    background: #cfe8c4;
    color: #143d12;
}

.vote-radio.vote-maybe:has(input:checked) {
    background: #ffe9a1;
    color: #4f3900;
}

.vote-radio.vote-no:has(input:checked) {
    background: #e8cbd5;
    color: #4b1d2c;
}

.vote-edit-cell {
    min-width: 2.6rem;
}

.vote-select {
    width: 2.35rem;
    min-height: 1.8rem;
    border-color: transparent;
    border-radius: 4px;
    padding: 0.12rem;
    font-weight: 760;
    text-align: center;
}

.admin-participant-cell {
    min-width: 13.5rem;
    max-width: 15rem;
}

.compact-name-input,
.compact-email-input {
    display: block;
    height: 1.65rem;
    border-radius: 4px;
    padding: 0.18rem 0.32rem;
    font-size: 0.78rem;
}

.compact-email-input {
    margin-top: 0.18rem;
    color: var(--muted);
}

.comments {
    display: grid;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.comment {
    border-left: 3px solid var(--accent);
    padding-left: 0.8rem;
}

.comment p {
    margin-bottom: 0;
}

.comment-form {
    display: grid;
    grid-template-columns: minmax(8rem, 14rem) minmax(0, 1fr);
    align-items: start;
    gap: 0.75rem;
    border-top: 1px solid var(--line);
    padding-top: 1rem;
}

.comment-form label:first-of-type {
    grid-column: 1;
    grid-row: 1;
}

.comment-form label:nth-of-type(2) {
    grid-column: 2;
    grid-row: 1 / span 2;
}

.comment-form textarea {
    min-height: 5rem;
}

.comment-form .actions {
    grid-column: 1;
    grid-row: 2;
    align-self: start;
}

.comment-form .actions .button {
    width: 100%;
}

.admin-options {
    display: grid;
    gap: 0.45rem;
    margin-bottom: 1rem;
}

.admin-option-grid-wrap {
    width: 100%;
    overflow-x: auto;
    margin-bottom: 1rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcfb;
}

.admin-option-grid {
    width: 100%;
    min-width: 36rem;
    border-collapse: separate;
    border-spacing: 0;
}

.admin-option-grid th,
.admin-option-grid td {
    border-bottom: 1px solid var(--line);
    border-left: 1px solid var(--line);
    padding: 0.55rem;
    vertical-align: top;
}

.admin-option-grid th:first-child,
.admin-option-grid td:first-child {
    border-left: 0;
}

.admin-option-grid tr:last-child th,
.admin-option-grid tr:last-child td {
    border-bottom: 0;
}

.admin-option-grid thead th {
    background: #f0f3f1;
    color: var(--text);
    text-align: center;
}

.admin-option-grid thead span,
.admin-option-grid thead small {
    display: block;
}

.admin-option-grid thead small {
    margin-top: 0.15rem;
    color: var(--muted);
    font-weight: 560;
}

.admin-option-grid tbody th {
    width: 5rem;
    background: #f7f8f6;
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}

.option-result-cell {
    min-width: 8.5rem;
    background: #fff;
}

.option-result-cell.is-best {
    box-shadow: inset 0 0 0 2px var(--accent);
}

.option-result-empty {
    min-width: 8.5rem;
    background: repeating-linear-gradient(
        -45deg,
        #f6f7f6,
        #f6f7f6 0.35rem,
        #fff 0.35rem,
        #fff 0.7rem
    );
}

.option-result-head {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.25rem;
    min-height: 1.5rem;
    margin-bottom: 0.45rem;
}

.option-result-head .pill {
    margin-left: 0;
}

.option-result-head form {
    display: inline-flex;
    margin-left: auto;
}

.option-result-counts {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.option-count {
    display: inline-flex;
    align-items: baseline;
    gap: 0.2rem;
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 0.15rem 0.45rem;
    font-size: 0.78rem;
    line-height: 1.2;
    white-space: nowrap;
}

.option-count-yes {
    border-color: #bed9cd;
    background: var(--yes);
    color: #24503c;
}

.option-count-maybe {
    border-color: #ead88f;
    background: var(--maybe);
    color: #684d12;
}

.option-count-no {
    border-color: #d7dcde;
    background: var(--no);
    color: var(--muted);
}

.compact-counts {
    margin-left: auto;
}

.option-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 0.65rem 0.8rem;
    background: #fbfcfb;
}

.option-row-title {
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
    font-weight: 680;
}

.option-add-form {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) minmax(7rem, 10rem) auto;
    align-items: end;
    gap: 0.75rem;
}

.option-add-form .wide {
    grid-column: span 2;
}

.choice-option-add-form {
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
}

.js .choice-option-add-form .admin-choice-builder {
    display: block;
}

.js .choice-option-add-form .admin-choice-fallback {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.choice-option-add-form .option-limit-section {
    max-width: 16rem;
}

.choice-option-add-form .option-limit-section .setting-panel {
    padding: 0.65rem;
}

.participant-options-panel {
    margin-top: 1rem;
}

.participant-option-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(10rem, 1fr)) minmax(12rem, 1.4fr) auto;
    align-items: end;
    gap: 0.75rem;
}

.participant-option-form .participant-option-title {
    grid-column: span 2;
}

.suggested-options {
    display: grid;
    gap: 0.65rem;
    margin-bottom: 1rem;
    border: 1px solid #e5d39e;
    border-radius: 8px;
    padding: 0.85rem;
    background: #fffaf0;
}

.suggested-options h3 {
    margin: 0;
    font-size: 1rem;
}

.suggested-option {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    border-top: 1px solid #eadfbd;
    padding-top: 0.65rem;
}

.suggested-option > div:first-child {
    display: grid;
    gap: 0.15rem;
}

.suggested-option small {
    color: var(--muted);
}

.suggested-option-actions {
    display: flex;
    gap: 0.5rem;
}

.copy-input {
    max-width: 22rem;
}

.danger-zone {
    border-color: #e6c5bf;
}

.activity-list {
    display: grid;
    gap: 0.45rem;
    margin: 0;
    padding-left: 1.2rem;
}

.activity-list li {
    padding: 0.25rem 0;
}

.js .activity-item.is-hidden {
    display: none;
}

.activity-list time {
    display: block;
    color: var(--muted);
    font-size: 0.85rem;
}

.activity-expand-button {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--accent);
    cursor: pointer;
    display: none;
    font: inherit;
    margin: 0.4rem 0 0;
    padding: 0;
    text-align: left;
}

.js .activity-expand-button {
    display: inline;
}

.activity-expand-button:hover,
.activity-expand-button:focus-visible {
    text-decoration: underline;
}

.empty-cell {
    color: var(--muted);
    text-align: center;
}

.danger-delete-form {
    margin-top: 0.75rem;
}

.delete-response-form {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

@media (min-width: 1080px) {
    .admin-layout {
        grid-template-columns: minmax(0, 1fr) clamp(20rem, 28vw, 25rem);
    }

    .create-form {
        grid-template-columns: minmax(0, 1fr) clamp(18rem, 22vw, 21rem);
        align-items: start;
        gap: clamp(1.5rem, 3vw, 2rem);
    }

    .create-main {
        grid-column: 1;
    }

    .advanced-fields {
        grid-column: 2;
        grid-row: 1;
        position: sticky;
        top: 5.5rem;
        max-height: calc(100vh - 6.5rem);
        overflow: auto;
        border-top: 0;
        border-left: 1px solid var(--line);
        padding-top: 0;
        padding-left: clamp(1rem, 2vw, 1.35rem);
    }

    .advanced-fields > .field-label {
        margin-bottom: 0.6rem;
    }

    .advanced-fields .settings-sections {
        gap: 0.5rem;
    }

    .advanced-fields .setting-panel {
        padding: 0.7rem 0.8rem 0.85rem;
    }

    .form-submit-bottom {
        grid-column: 1 / -1;
    }
}

@media (min-width: 860px) {
    .settings-form .settings-sections {
        grid-template-columns: minmax(0, 1fr) minmax(13rem, 0.38fr);
        gap: 0.35rem 1rem;
        align-items: start;
    }

    .settings-form .setting-section {
        display: contents;
    }

    .settings-form .setting-section summary {
        grid-column: 2;
        min-height: 2.7rem;
        border: 1px solid var(--line);
        border-radius: 6px;
        background: #fff;
    }

    .settings-form .setting-section summary::after {
        content: "";
    }

    .settings-form .setting-section[open] summary {
        border-color: #b8d4d1;
        background: #eef6f5;
    }

    .settings-form .setting-panel {
        grid-column: 1;
        grid-row: 1 / span 20;
        border: 1px solid var(--line);
        border-radius: 8px;
        padding: 1rem;
        background: #fbfcfb;
    }
}

@media (max-width: 820px) {
    .date-builder {
        grid-template-columns: 1fr;
    }

    .option-weekday {
        display: none !important;
    }

    .option-slot,
    .option-time {
        min-width: 1.72rem;
        max-width: 1.72rem;
    }

    .settings-grid,
    .admin-toggle-grid {
        grid-template-columns: 1fr;
    }

    .option-add-form {
        grid-template-columns: 1fr;
    }

    .option-add-form .wide {
        grid-column: auto;
    }

    .participant-option-form {
        grid-template-columns: 1fr;
    }

    .participant-option-form .participant-option-title {
        grid-column: auto;
    }

    .suggested-option {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 520px) {
    .calendar-panel,
    .time-panel {
        padding: 0.65rem;
    }

    .calendar-toolbar {
        grid-template-columns: 2.25rem 1fr 2.25rem;
        gap: 0.35rem;
    }

    .calendar-toolbar .icon-button {
        min-width: 2.25rem;
        padding-inline: 0.45rem;
    }

    .calendar-weekdays {
        font-size: 0.72rem;
    }

    .calendar-day {
        min-height: 2rem;
        padding: 0.2rem;
        font-size: 0.88rem;
    }
}

@media (max-width: 720px) {
    .site-header,
    .hero,
    .poll-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .site-header {
        display: none;
    }

    .brand img {
        width: 8.8rem;
        max-width: 54vw;
    }

    .tagline {
        font-size: 0.95rem;
    }

    .page {
        width: min(1360px, calc(100% - 1rem));
        padding-top: 0.45rem;
    }

    .hero {
        gap: 0.35rem;
        margin-bottom: 0.65rem;
    }

    .imprint-content dl div {
        grid-template-columns: 1fr;
        gap: 0.15rem;
    }

    .form-grid {
        grid-template-columns: 1fr;
    }

    h1 {
        font-size: 2rem;
        margin-bottom: 0.35rem;
    }

    .poll-head {
        gap: 0.45rem;
        margin-bottom: 0.55rem;
    }

    .poll-head h1 {
        font-size: 1.85rem;
    }

    .poll-head .share-box {
        gap: 0.35rem;
    }

    .poll-head .button,
    .poll-head button {
        min-height: 1.9rem;
        padding: 0.24rem 0.48rem;
        font-size: 0.82rem;
    }

    .lead {
        font-size: 1rem;
        line-height: 1.42;
    }

    .date-builder {
        grid-template-columns: 1fr;
    }

    .title-row {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0.5rem;
    }

    .panel,
    .notice {
        padding: 0.65rem;
        margin-bottom: 0.65rem;
    }

    .identity-notice {
        align-items: stretch;
        flex-direction: column;
    }

    .identity-actions {
        justify-content: flex-start;
        width: 100%;
    }

    .identity-actions form,
    .identity-actions .button {
        width: 100%;
    }

    .matrix-wrap,
    .response-matrix-wrap {
        margin-bottom: 0.65rem;
        border-radius: 5px;
    }

    .matrix .sticky-name,
    .response-matrix .sticky-name {
        min-width: 3.8rem;
        max-width: 3.8rem;
    }

    .inline-response-row .sticky-name,
    .is-own-response .sticky-name {
        min-width: 6rem;
        max-width: 6.6rem;
    }

    .inline-response-row .sticky-name:has(.is-email-open),
    .is-own-response .sticky-name:has(.is-email-open) {
        min-width: 9.5rem;
        max-width: 11rem;
    }

    .option-slot,
    .option-time {
        min-width: 1.58rem;
        max-width: 1.58rem;
    }

    .matrix thead th,
    .response-matrix thead th {
        font-size: 0.64rem;
    }

    .vote {
        min-width: 1.55rem;
        height: 1.32rem;
    }

    .inline-vote-cell {
        min-width: 2.05rem;
    }

    .row-action-header,
    .row-action-cell {
        min-width: 1.8rem;
        max-width: 1.8rem;
    }

    .inline-icon-button {
        width: 1.42rem;
        min-width: 1.42rem;
        min-height: 1.42rem;
        padding: 0.12rem;
    }

    .inline-vote-option {
        grid-template-columns: 0.64rem minmax(0, 1fr);
        min-height: 0.98rem;
        font-size: 0.64rem;
    }

    .inline-vote-option input {
        width: 0.62rem;
        height: 0.62rem;
    }

    .inline-vote-option span {
        min-height: 0.98rem;
    }

    .email-toggle,
    .inline-save-button {
        width: auto;
    }

    .comment-form {
        grid-template-columns: 1fr;
    }

    .comment-form label:first-of-type,
    .comment-form label:nth-of-type(2),
    .comment-form .actions {
        grid-column: auto;
        grid-row: auto;
    }

    .response-panel h2 {
        font-size: 1.3rem;
        margin-bottom: 0.6rem;
    }

    .vote-form .form-grid {
        gap: 0.55rem;
    }

    .vote-form label span,
    .vote-form legend,
    .vote-form .field-label {
        margin-bottom: 0.2rem;
    }

    .response-matrix-wrap {
        margin-top: 0.65rem;
    }

    .response-choice {
        width: 3.35rem;
    }

    .vote-radio {
        width: 1.55rem;
        height: 1.38rem;
    }

    .inline-form {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-actions {
        justify-content: stretch;
        width: 100%;
    }

    .share-link {
        flex-basis: 100%;
    }

    .section-heading {
        flex-direction: column;
    }

    .button,
    button {
        width: 100%;
    }

    .email-toggle,
    .inline-icon-button,
    .inline-save-button,
    .icon-only-button,
    .hero-title-option,
    .title-row .button,
    .form-submit-bottom .button {
        width: auto;
    }

    .title-row .button {
        min-width: 6.5rem;
    }

    .form-submit-bottom {
        justify-content: flex-start;
    }

    .time-actions .icon-button {
        width: auto;
    }

    .matrix-action {
        width: 1.45rem;
    }

    .vote-select {
        width: 2.35rem;
    }

    .time-insert-button {
        width: 1.35rem;
        min-width: 1.35rem;
    }

    .time-manual-add {
        width: 1.65rem;
        min-width: 1.65rem;
    }
}

@media (max-width: 380px) {
    .title-row {
        grid-template-columns: 1fr;
    }

    .title-row .button {
        width: 100%;
    }
}
