/**
 * SB BürgerDialog – gekapseltes Frontend-Designsystem.
 * Version: 1.0.1-alpha.2
 * Datum: 18.06.2026
 * Sämtliche normalen Selektoren beginnen mit .sb-dialog.
 */
.sb-dialog {
    box-sizing: border-box;
    min-width: 0;
    margin: 2rem 0;
    padding: 1.35rem;
    border: 1px solid var(--sbdia-border, #e5e5e5);
    border-radius: var(--sbdia-radius, 10px);
    background: var(--sbdia-bg, #fff);
    color: var(--sbdia-text, #1f1f1f);
    font: inherit;
    line-height: 1.55;
    box-shadow: 0 10px 30px rgb(0 0 0 / 4.5%);
}
.sb-dialog * { box-sizing: border-box; min-width: 0; }
.sb-dialog[hidden],
.sb-dialog [hidden] { display: none !important; }
.sb-dialog a { overflow-wrap: anywhere; }
.sb-dialog .sb-dialog__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}
.sb-dialog .sb-dialog__title {
    margin: 0;
    color: var(--sbdia-text, #1f1f1f);
    font-size: clamp(1.35rem, 2.5vw, 1.8rem);
    line-height: 1.2;
}
.sb-dialog .sb-dialog__body { display: grid; gap: 1rem; }
.sb-dialog .sb-dialog__module {
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--sbdia-border, #e5e5e5);
    border-radius: calc(var(--sbdia-radius, 10px) * .85);
    background: var(--sbdia-surface, #f6f6f6);
}
.sb-dialog .sb-dialog__module-heading {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin: 0 0 .8rem;
}
.sb-dialog .sb-dialog__module-heading h3,
.sb-dialog .sb-dialog__accordion-label {
    margin: 0 !important;
    color: var(--sbdia-text, #1f1f1f);
    font: inherit;
    font-size: 1.08rem;
    font-weight: 700;
}
.sb-dialog .sb-dialog__icon,
.sb-dialog .sb-dialog__module-icon svg,
.sb-dialog .sb-dialog__module-heading > svg,
.sb-dialog .sb-dialog__accordion-toggle svg {
    width: 1.45rem;
    height: 1.45rem;
    flex: 0 0 auto;
    color: var(--sbdia-accent, #f26a00);
}
.sb-dialog .sb-dialog__module-icon { display: inline-flex; margin-right: .45rem; vertical-align: middle; }
.sb-dialog .sb-dialog__views { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .7rem; }
.sb-dialog .sb-dialog__views small { flex-basis: 100%; color: var(--sbdia-muted, #666); }
.sb-dialog .sb-dialog__button,
.sb-dialog .sb-dialog__reaction-button,
.sb-dialog .sb-dialog__share-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    min-height: 44px;
    padding: .65rem 1rem;
    border: 2px solid var(--sbdia-accent, #f26a00);
    border-radius: var(--sbdia-radius, 10px);
    background: var(--sbdia-accent, #f26a00);
    color: #fff !important;
    text-decoration: none !important;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
.sb-dialog .sb-dialog__button:hover,
.sb-dialog .sb-dialog__button:focus-visible,
.sb-dialog .sb-dialog__reaction-button:hover,
.sb-dialog .sb-dialog__reaction-button:focus-visible,
.sb-dialog .sb-dialog__share-button:hover,
.sb-dialog .sb-dialog__share-button:focus-visible {
    border-color: var(--sbdia-accent-hover, #d85d00);
    background: var(--sbdia-accent-hover, #d85d00);
    color: #fff !important;
}
.sb-dialog .sb-dialog__button:focus-visible,
.sb-dialog .sb-dialog__reaction-button:focus-visible,
.sb-dialog .sb-dialog__reaction-revoke:focus-visible,
.sb-dialog .sb-dialog__share-button:focus-visible,
.sb-dialog .sb-dialog__accordion-toggle:focus-visible,
.sb-dialog input:focus-visible,
.sb-dialog textarea:focus-visible,
.sb-dialog select:focus-visible {
    outline: 3px solid rgb(242 106 0 / 28%);
    outline-offset: 3px;
}
.sb-dialog button:disabled { opacity: .58; cursor: wait; }
.sb-dialog .sb-dialog__button--secondary { background: transparent; color: var(--sbdia-accent, #f26a00) !important; }
.sb-dialog .sb-dialog__reaction-revoke {
    display: inline;
    padding: .15rem 0;
    border: 0;
    border-bottom: 1px solid currentColor;
    background: transparent;
    color: var(--sbdia-muted, #666);
    font: inherit;
    font-size: .88rem;
    cursor: pointer;
}
.sb-dialog .sb-dialog__reaction-count { margin: .7rem 0 0; }
.sb-dialog .sb-dialog__reaction-state { margin: .5rem 0 .35rem; font-weight: 700; color: var(--sbdia-success, #167a3e); }
.sb-dialog .sb-dialog__consent {
    display: flex !important;
    align-items: flex-start;
    gap: .6rem;
    margin: 0 0 .85rem !important;
    font-weight: 400 !important;
}
.sb-dialog .sb-dialog__consent input { width: 1.15rem; height: 1.15rem; margin-top: .2rem; flex: 0 0 auto; }
.sb-dialog .sb-dialog__poll fieldset { margin: 0; padding: 0; border: 0; }
.sb-dialog .sb-dialog__poll legend { display: block; width: 100%; margin: 0 0 1rem; font-size: 1.15rem; font-weight: 700; }
.sb-dialog .sb-dialog__poll-option {
    display: flex !important;
    align-items: flex-start;
    gap: .65rem;
    margin: .55rem 0 !important;
    padding: .75rem;
    border: 1px solid var(--sbdia-border, #e5e5e5);
    border-radius: calc(var(--sbdia-radius, 10px) * .7);
    background: var(--sbdia-bg, #fff);
    cursor: pointer;
}
.sb-dialog .sb-dialog__poll-option input { margin-top: .25rem; }
.sb-dialog .sb-dialog__poll-form .sb-dialog__button { margin-top: .8rem; }
.sb-dialog .sb-dialog__poll-results { margin-top: 1rem; }
.sb-dialog .sb-dialog__result { margin: .75rem 0; }
.sb-dialog .sb-dialog__result-label { display: flex; justify-content: space-between; gap: 1rem; font-size: .95rem; }
.sb-dialog .sb-dialog__result-track { height: .65rem; margin-top: .3rem; overflow: hidden; border-radius: 999px; background: var(--sbdia-border, #e5e5e5); }
.sb-dialog .sb-dialog__result-track span { display: block; height: 100%; background: var(--sbdia-accent, #f26a00); }
.sb-dialog .sb-dialog__question-actions,
.sb-dialog .sb-dialog__share-buttons { display: flex; flex-wrap: wrap; gap: .65rem; }
.sb-dialog .sb-dialog__form label { display: block; margin: .8rem 0; font-weight: 600; }
.sb-dialog .sb-dialog__form input[type="text"],
.sb-dialog .sb-dialog__form input[type="email"],
.sb-dialog .sb-dialog__form textarea,
.sb-dialog .sb-dialog__form select {
    display: block;
    width: 100%;
    max-width: 100%;
    margin-top: .3rem;
    padding: .7rem;
    border: 1px solid var(--sbdia-border, #e5e5e5);
    border-radius: calc(var(--sbdia-radius, 10px) * .65);
    background: var(--sbdia-bg, #fff);
    color: var(--sbdia-text, #1f1f1f);
    font: inherit;
}
.sb-dialog .sb-dialog__form textarea { min-height: 140px; resize: vertical; }
.sb-dialog .sb-dialog__form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 1rem; }
.sb-dialog .sb-dialog__form-grid > label { display: flex; min-width: 0; height: 100%; flex-direction: column; }
.sb-dialog .sb-dialog__form-grid input { min-height: 44px; }
.sb-dialog .sb-dialog__honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.sb-dialog .sb-dialog__share-buttons { justify-content: flex-start; gap: var(--sbdia-share-gap, 10px); }
.sb-dialog .sb-dialog__share-icon { width: var(--sbdia-share-icon-size, 20px); height: var(--sbdia-share-icon-size, 20px); color: var(--sbdia-share-icon, #f26a00); fill: none; }
.sb-dialog .sb-dialog__share-button {
    min-height: var(--sbdia-share-button-size, 44px);
    border-width: var(--sbdia-share-border-width, 1px);
    border-color: var(--sbdia-share-border, #e5e5e5);
    background: var(--sbdia-share-bg, #fff);
    color: var(--sbdia-share-text, #1f1f1f) !important;
}
.sb-dialog .sb-dialog__share-button:hover,
.sb-dialog .sb-dialog__share-button:focus-visible { border-color: var(--sbdia-share-hover-bg, #f26a00); background: var(--sbdia-share-hover-bg, #f26a00); color: var(--sbdia-share-hover-text, #fff) !important; }
.sb-dialog .sb-dialog__share-button:hover .sb-dialog__share-icon,
.sb-dialog .sb-dialog__share-button:focus-visible .sb-dialog__share-icon { color: var(--sbdia-share-hover-icon, #fff); }
.sb-dialog .sb-dialog__share--center .sb-dialog__share-buttons { justify-content: center; }
.sb-dialog .sb-dialog__share--right .sb-dialog__share-buttons { justify-content: flex-end; }
.sb-dialog .sb-dialog__share--round .sb-dialog__share-button { border-radius: 999px; }
.sb-dialog .sb-dialog__share--square .sb-dialog__share-button { border-radius: 0; }
.sb-dialog .sb-dialog__share--icon .sb-dialog__share-button span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sb-dialog .sb-dialog__share--icon .sb-dialog__share-button { width: var(--sbdia-share-button-size, 44px); padding: 0; }
.sb-dialog .sb-dialog__share--text_below .sb-dialog__share-button { height: auto; flex-direction: column; }
.sb-dialog .sb-dialog__notice { margin: .85rem 0 0; padding: .8rem 1rem; border-radius: calc(var(--sbdia-radius, 10px) * .65); background: var(--sbdia-bg, #fff); color: var(--sbdia-muted, #666); font-size: .92rem; }
.sb-dialog .sb-dialog__feedback { margin-top: 1rem; }
.sb-dialog .sb-dialog__feedback:not(:empty) { padding: .8rem 1rem; border-radius: calc(var(--sbdia-radius, 10px) * .65); background: var(--sbdia-surface, #f6f6f6); color: var(--sbdia-text, #1f1f1f); }
.sb-dialog .sb-dialog__feedback.is-success { border-left: 4px solid var(--sbdia-success, #167a3e); }
.sb-dialog .sb-dialog__feedback.is-error { border-left: 4px solid var(--sbdia-error, #a61b1b); }
.sb-dialog .sb-dialog__test-badge { margin: -1.35rem -1.35rem 1rem; padding: .55rem 1rem; border-radius: var(--sbdia-radius, 10px) var(--sbdia-radius, 10px) 0 0; background: #fff3cd; color: #664d03; font-weight: 700; }
.sb-dialog.sb-dialog--compact { padding: .85rem; }
.sb-dialog.sb-dialog--compact .sb-dialog__body { gap: .6rem; }
.sb-dialog.sb-dialog--compact .sb-dialog__module { padding: .75rem; }
.sb-dialog.sb-dialog--cards .sb-dialog__body { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sb-dialog.sb-dialog--workbench .sb-dialog__body { grid-template-columns: minmax(220px, .8fr) minmax(0, 1.4fr); }
.sb-dialog.sb-dialog--workbench .sb-dialog__poll,
.sb-dialog.sb-dialog--workbench .sb-dialog__form-wrap,
.sb-dialog.sb-dialog--workbench .sb-dialog__share { grid-column: 2; }
.sb-dialog.sb-dialog--workbench .sb-dialog__views,
.sb-dialog.sb-dialog--workbench .sb-dialog__reaction,
.sb-dialog.sb-dialog--workbench .sb-dialog__question { grid-column: 1; }
.sb-dialog.sb-dialog--light { --sbdia-bg: #fff; --sbdia-surface: #f6f6f6; --sbdia-text: #1f2933; --sbdia-muted: #5f6b76; --sbdia-border: #d9dee3; }
.sb-dialog.sb-dialog--dark { --sbdia-bg: #1f1f1f; --sbdia-surface: #2f2f2f; --sbdia-text: #fff; --sbdia-muted: #d0d0d0; --sbdia-border: #484848; }
.sb-dialog.sb-dialog--dark a { color: inherit; }
.sb-dialog .sb-dialog__ranking-list { display: grid; gap: .85rem; margin: 0; padding: 0; list-style: none; }
.sb-dialog.sb-dialog__ranking--grid .sb-dialog__ranking-list { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.sb-dialog .sb-dialog__ranking-item {
    position: relative;
    display: grid;
    grid-template-columns: minmax(80px, 120px) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
    padding: 1rem;
    border: 1px solid var(--sbdia-border, #e5e5e5);
    border-radius: var(--sbdia-radius, 10px);
    background: var(--sbdia-surface, #f6f6f6);
    overflow-wrap: anywhere;
}
.sb-dialog.sb-dialog__ranking--grid .sb-dialog__ranking-item { grid-template-columns: 1fr; }
.sb-dialog .sb-dialog__ranking-image img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: calc(var(--sbdia-radius, 10px) * .7); }
.sb-dialog .sb-dialog__ranking-badge { position: absolute; z-index: 1; inset: .55rem auto auto .55rem; display: inline-grid; place-items: center; min-width: 2rem; min-height: 2rem; padding: .2rem; border-radius: 999px; background: var(--sbdia-accent, #f26a00); color: #fff; font-weight: 800; line-height: 1; }
.sb-dialog .sb-dialog__ranking-item h3 { margin: 0 0 .35rem; font-size: 1.08rem; overflow-wrap: anywhere; }
.sb-dialog .sb-dialog__ranking-item p { margin: .25rem 0; }
.sb-dialog .sb-dialog__ranking-metrics { color: var(--sbdia-accent, #f26a00); font-weight: 700; }
.sb-dialog .sb-dialog__ranking-period { color: var(--sbdia-muted, #666); font-size: .9rem; }
.sb-dialog .sb-dialog__accordion-toggle { display: flex; width: 100%; align-items: center; gap: .65rem; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; font: inherit; cursor: pointer; }
.sb-dialog .sb-dialog__accordion-indicator { margin-left: auto; color: var(--sbdia-muted, #666); transition: transform .15s ease; }
.sb-dialog .sb-dialog__accordion-toggle[aria-expanded="true"] .sb-dialog__accordion-indicator { transform: rotate(180deg); }
.sb-dialog .sb-dialog__accordion-content { display: block; }
@media (max-width: 780px) {
    .sb-dialog.sb-dialog--cards .sb-dialog__body,
    .sb-dialog.sb-dialog--workbench .sb-dialog__body { grid-template-columns: 1fr; }
    .sb-dialog.sb-dialog--workbench .sb-dialog__module { grid-column: 1; }
    .sb-dialog .sb-dialog__module { padding: .85rem; }
}
@media (max-width: 640px) {
    .sb-dialog { padding: 1rem; }
    .sb-dialog .sb-dialog__test-badge { margin: -1rem -1rem 1rem; }
    .sb-dialog .sb-dialog__form-grid { grid-template-columns: 1fr; }
    .sb-dialog .sb-dialog__question-actions,
    .sb-dialog .sb-dialog__share-buttons { display: grid; grid-template-columns: 1fr; }
    .sb-dialog .sb-dialog__button,
    .sb-dialog .sb-dialog__reaction-button,
    .sb-dialog .sb-dialog__share-button { width: 100%; }
    .sb-dialog .sb-dialog__result-label { font-size: .88rem; }
    .sb-dialog .sb-dialog__ranking-item { grid-template-columns: 1fr; }
    .sb-dialog .sb-dialog__share--mobile-full .sb-dialog__share-buttons { grid-template-columns: 1fr; }
    .sb-dialog .sb-dialog__share--mobile-full .sb-dialog__share-button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .sb-dialog .sb-dialog__button,
    .sb-dialog .sb-dialog__reaction-button,
    .sb-dialog .sb-dialog__share-button,
    .sb-dialog .sb-dialog__accordion-indicator { transition: none; }
}

.sb-dialog .sb-dialog__share[data-sbdia-share] { display: block; }
