:root {
    --orange: #f26a00;
    --orange-dark: #d85d00;
    --ink: #202126;
    --muted: #6d7178;
    --line: #e4e5e8;
    --soft: #f5f5f3;
    --white: #fff;
    --success: #177245;
    --danger: #b42318;
    --shadow: 0 4px 16px rgba(25, 25, 30, .045);
    --radius: 10px;
}

* { box-sizing: border-box; }
html { color-scheme: light; }
body {
    margin: 0;
    color: var(--ink);
    background: #fafafa;
    font: 14px/1.48 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
a { color: var(--orange-dark); }
img { max-width: 100%; }
h1, h2, h3 { line-height: 1.18; margin: 0 0 .7em; letter-spacing: -.02em; font-weight: 650; }
h1 { font-size: clamp(1.55rem, 3vw, 2.35rem); }
h2 { font-size: clamp(1.15rem, 2vw, 1.48rem); }
h3 { margin-top: 1.3rem; font-size: 1.05rem; }
p { margin: 0 0 1rem; }
small, .muted { color: var(--muted); }

label { display: grid; gap: .25rem; font-weight: 600; margin-bottom: .65rem; }
input, select, textarea {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    min-height: 36px;
    padding: .48rem .62rem;
    color: var(--ink);
    background: var(--white);
    border: 1px solid #ccd0d5;
    border-radius: 8px;
    font: inherit;
}
textarea { min-height: 96px; resize: vertical; }
input[type="checkbox"], input[type="radio"] { width: auto; min-height: auto; accent-color: var(--orange); }
input:focus, select:focus, textarea:focus { outline: 3px solid rgba(242, 106, 0, .16); border-color: var(--orange); }

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: .48rem .75rem;
    border: 1px solid transparent;
    border-radius: 8px;
    font: 650 .84rem/1 system-ui, sans-serif;
    text-decoration: none;
    cursor: pointer;
}
.button.primary { color: #fff; background: var(--orange); }
.button.primary:hover { background: var(--orange-dark); }
.button.secondary { color: var(--ink); background: #fff; border-color: #cfd2d7; }
.button.danger { color: #fff; background: var(--danger); }
.button.small { min-height: 29px; padding: .36rem .58rem; font-size: .77rem; }
.button:disabled { opacity: .48; cursor: not-allowed; }
.button.wide { width: 100%; }

.panel {
    padding: clamp(.8rem, 1.6vw, 1.1rem);
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}
.grid { display: grid; gap: .8rem; }
.grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.alert { padding: .85rem 1rem; margin: 0 0 1rem; border-radius: 10px; background: #eef5ff; }
.alert.success { color: #0f5e38; background: #e9f7ef; border: 1px solid #b8e2ca; }
.alert.error { color: #8f1d14; background: #fff0ef; border: 1px solid #f0c1bc; }
.alert.warning { color: #6f4d00; background: #fff8df; border: 1px solid #ead48a; }
.eyebrow { display: block; margin-bottom: .45rem; color: var(--orange); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; font-size: .66rem; }

/* Installation and login */
.install, .login-page {
    min-height: 100vh;
    background:
        radial-gradient(circle at 10% 10%, rgba(242,106,0,.16), transparent 35%),
        linear-gradient(135deg, #17181c, #303138);
}
.install-shell {
    width: min(1120px, calc(100% - 2rem));
    min-height: 100vh;
    margin: auto;
    padding: 5vh 0;
    display: grid;
    grid-template-columns: 1fr 1.05fr;
    align-items: center;
    gap: clamp(2rem, 6vw, 6rem);
}
.install-intro { color: #fff; }
.install-intro p { max-width: 580px; color: #d4d5d8; font-size: 1.12rem; }
.install-panel { max-height: 92vh; overflow: auto; }
.install-panel h3 { padding-top: .8rem; border-top: 1px solid var(--line); }
.success-mark { display: grid; place-items: center; width: 62px; height: 62px; margin-bottom: 1.3rem; color: #fff; background: var(--success); border-radius: 50%; font-size: 2rem; }
.login-wrap { width: min(440px, calc(100% - 2rem)); margin: auto; padding: 10vh 0; }
.login-brand { margin-bottom: 1.5rem; color: #fff; text-align: center; }

/* Admin */
.admin-body { background: var(--soft); }
.admin-shell { min-height: 100vh; display: grid; grid-template-columns: 195px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 1rem .7rem; color: #fff; background: #24252a; }
.brand { display: block; padding: .4rem .55rem .85rem; color: #fff; text-decoration: none; font-size: .96rem; font-weight: 750; }
.brand span { color: var(--orange); }
.nav { display: grid; gap: .18rem; }
.nav a { padding: .5rem .58rem; color: #d9dade; border-radius: 7px; text-decoration: none; font-size: .83rem; font-weight: 550; }
.nav a:hover, .nav a.active { color: #fff; background: #383a41; }
.sidebar-meta { position: absolute; left: 1rem; right: 1rem; bottom: 1.3rem; padding: .75rem; color: #b7bac0; font-size: .78rem; }
.admin-main { min-width: 0; }
.topbar { min-height: 48px; padding: .5rem clamp(.8rem, 2vw, 1.35rem); display: flex; justify-content: space-between; align-items: center; background: #fff; border-bottom: 1px solid var(--line); font-size: .82rem; }
.admin-content { width: min(1080px, calc(100% - 1.5rem)); margin: 0 auto; padding: 1rem 0 2.5rem; }
.page-head { margin-bottom: 1rem; display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.page-head h1 { font-size: clamp(1.42rem, 2.5vw, 1.95rem); }
.stats { margin-bottom: 1rem; }
.stat { padding: .72rem; background: #fff; border: 1px solid var(--line); border-radius: 9px; }
.stat strong { display: block; font-size: 1.38rem; font-weight: 650; }
.stat span { color: var(--muted); font-size: .9rem; }
.stack { display: grid; gap: .85rem; }
.actions { display: flex; gap: .6rem; flex-wrap: wrap; align-items: center; }
.inline-form { display: inline; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .62rem .55rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--muted); font-size: .78rem; letter-spacing: .05em; text-transform: uppercase; }
.badge { display: inline-block; padding: .24rem .48rem; border-radius: 999px; background: #eceef1; font-size: .75rem; font-weight: 650; }
.badge.accepted, .badge.published { color: #0b5d36; background: #dcf4e6; }
.badge.declined { color: #8f1d14; background: #ffe8e5; }
.badge.pending, .badge.draft { color: #765300; background: #fff3cc; }
.urlbox { padding: .65rem .8rem; overflow-wrap: anywhere; color: #42454b; background: #f4f5f6; border: 1px solid var(--line); border-radius: 9px; font: .86rem ui-monospace, SFMono-Regular, Consolas, monospace; }
.swatch { display: flex; gap: .7rem; align-items: center; }
.swatch input[type="color"] { width: 58px; padding: .2rem; }
.section-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.privacy-note { margin: 1rem 0 0; padding: .75rem .9rem; color: #425466; background: #f2f7fb; border-radius: 9px; }
.checkline { display: flex; grid-template-columns: none; align-items: flex-start; gap: .65rem; font-weight: 650; }
.checkline input { margin-top: .35rem; }
.check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.system-check { display: flex; align-items: flex-start; gap: .75rem; padding: .85rem; border: 1px solid var(--line); border-radius: 10px; }
.system-check > span { flex: 0 0 28px; display: grid; place-items: center; width: 28px; height: 28px; color: #fff; border-radius: 50%; font-weight: 900; }
.system-check.ok > span { background: var(--success); }
.system-check.fail > span { background: var(--danger); }
.system-check small { display: block; overflow-wrap: anywhere; }
.changelog { max-height: 440px; margin: 0; padding: 1rem; overflow: auto; white-space: pre-wrap; color: #34363b; background: #f5f6f7; border-radius: 10px; font: .87rem/1.55 ui-monospace, SFMono-Regular, Consolas, monospace; }
.demo-panel { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); gap: 2rem; align-items: center; }
.demo-preview { position: relative; padding-right: 10%; }
.demo-preview img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 14px; box-shadow: var(--shadow); }
.demo-preview .demo-preview-mobile { position: absolute; right: 0; bottom: -1rem; width: 27%; aspect-ratio: 9 / 19; border: 5px solid #fff; border-radius: 18px; }
.feature-list { padding-left: 1.2rem; }
.feature-list li { margin-bottom: .45rem; }
.editor-jumps {
    position: sticky;
    top: 0;
    z-index: 10;
    margin: 0 0 1.2rem;
    padding: .55rem;
    display: flex;
    gap: .35rem;
    overflow-x: auto;
    background: rgba(255,255,255,.96);
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: 0 8px 25px rgba(25,25,30,.07);
}
.editor-jumps a { padding: .55rem .7rem; color: var(--ink); border-radius: 8px; text-decoration: none; white-space: nowrap; font-size: .85rem; font-weight: 750; }
.editor-jumps a:hover { color: #fff; background: var(--orange); }
.repeater { display: grid; gap: .85rem; }
.repeater:empty::after { content: "Noch kein Eintrag. Mit der Schaltfläche oben kannst du einen anlegen."; padding: 1rem; color: var(--muted); background: var(--soft); border: 1px dashed #cdd0d5; border-radius: 10px; }
.repeater-row { padding: 1rem; background: #fafaf9; border: 1px solid var(--line); border-radius: 12px; }
.row-controls { grid-template-columns: minmax(220px, 1fr) 110px 130px auto; align-items: end; }
.row-controls .choice { min-height: 46px; margin-bottom: 1rem; }
.row-controls .button { margin-bottom: 1rem; }
.hotel-row { grid-template-columns: 1.1fr 1.4fr .8fr 1fr 110px 100px; }
.field-table input { min-width: 110px; }
.field-table input[type="checkbox"] { min-width: 0; }
.sticky-save { position: sticky; bottom: .8rem; z-index: 9; padding: .7rem; display: flex; justify-content: flex-end; background: rgba(255,255,255,.94); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 35px rgba(25,25,30,.14); }
.payment-status-form select { min-width: 115px; min-height: 36px; padding: .45rem; font-size: .84rem; }

/* Public event: compact single-card layout inspired by the birthday prototype. */
.event-page {
    --event-primary: #f26a00;
    --event-secondary: #2f2f2f;
    min-height: 100vh;
    position: relative;
    isolation: isolate;
    background: var(--event-secondary);
}
.event-page::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -2;
    background:
        var(--event-desktop-image, radial-gradient(circle at 50% 20%, color-mix(in srgb, var(--event-primary) 42%, transparent), transparent 42%)),
        var(--event-secondary);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}
.event-page::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(12,8,5,.46), rgba(12,8,5,.7));
}
.event-page-wrap {
    width: min(740px, calc(100% - 2rem));
    min-height: 100vh;
    margin: 0 auto;
    padding: clamp(1rem, 4vh, 2.5rem) 0;
    display: flex;
    align-items: flex-start;
}
.event-invite-card {
    width: 100%;
    overflow: hidden;
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(255,255,255,.32);
    border-radius: 16px;
    box-shadow: 0 22px 70px rgba(0,0,0,.34);
    backdrop-filter: saturate(1.08) blur(3px);
}
.event-invite-header {
    padding: 1.4rem clamp(1.2rem, 4vw, 2rem) 1.2rem;
    color: #fff;
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--event-secondary) 92%, #000), color-mix(in srgb, var(--event-primary) 72%, var(--event-secondary)));
    text-align: center;
}
.event-invite-header .eyebrow { margin-bottom: .6rem; color: #fff; opacity: .82; }
.event-invite-header h1 {
    margin: 0 auto .35rem;
    font: 750 clamp(2rem, 7vw, 3.25rem)/1.04 Georgia, "Times New Roman", serif;
    letter-spacing: -.035em;
}
.event-invite-header .subtitle { max-width: 580px; margin: 0 auto; color: rgba(255,255,255,.9); font-size: 1.05rem; }
.event-summary, .event-response-card { padding: 1.25rem clamp(1.1rem, 4vw, 2rem); }
.event-summary { border-bottom: 1px solid var(--line); }
.event-details { margin-bottom: 1.2rem; display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.event-details.has-participant-count { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.detail { padding: .85rem; background: #f4efe8; border-radius: 10px; }
.detail small { display: block; margin-bottom: .2rem; }
.event-address { font-size: .94rem; }
.event-description { color: #353535; }
.event-fold { border-bottom: 1px solid var(--line); }
.event-fold summary {
    padding: 1rem clamp(1.1rem, 4vw, 2rem);
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    cursor: pointer;
    color: var(--event-secondary);
    font-weight: 850;
    list-style: none;
}
.event-fold summary::-webkit-details-marker { display: none; }
.event-fold summary::after { content: "+"; color: var(--event-primary); font-size: 1.25rem; line-height: 1; }
.event-fold[open] summary::after { content: "–"; }
.event-fold summary span { margin-left: auto; color: var(--muted); font-size: .78rem; font-weight: 600; }
.event-fold > div, .event-fold > h2 { margin-right: clamp(1.1rem, 4vw, 2rem); margin-left: clamp(1.1rem, 4vw, 2rem); }
.event-fold > div { padding-bottom: 1.2rem; }
.event-fold > h2 { margin-top: .3rem; font: 750 1.2rem Georgia, "Times New Roman", serif; }
.hotel-cards { display: grid; gap: .7rem; }
.hotel-card { padding: .85rem; background: #f8f5f0; border: 1px solid #e5ddd3; border-radius: 10px; }
.hotel-card h3 { margin: 0 0 .35rem; font-family: Georgia, "Times New Roman", serif; }
.hotel-card p { margin-bottom: .55rem; }
.hotel-card .actions { margin-top: .7rem; }
.copy-value { overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.event-response-card h2 { font-family: Georgia, "Times New Roman", serif; }
.event-response-card .button.primary { background: var(--event-primary); }
.choice-row { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.choice { padding: .9rem; display: flex; gap: .5rem; align-items: center; border: 1px solid #ccd0d5; border-radius: 10px; }
.share { padding-top: 1rem; display: flex; gap: .5rem; flex-wrap: wrap; border-top: 1px solid var(--line); }
.event-footer { padding: .8rem 1rem; color: #747474; background: #f5f3ef; border-top: 1px solid var(--line); text-align: center; font-size: .76rem; }
.embed-page .event-page-wrap { min-height: auto; padding: 1rem 0; }
.print-only { display: none; }

/* Event-Seitenstudio */
.designer-teaser {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 2rem;
    background: linear-gradient(135deg, #fff, #fff7ef);
    border-color: #f1c9a8;
}
.designer-teaser p { max-width: 780px; margin-bottom: 0; }
.studio-form { display: grid; gap: 1.2rem; }
.studio-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 430px);
    gap: 1.4rem;
    align-items: start;
}
.studio-controls,
.studio-controls > *,
.studio-controls .grid > *,
.studio-controls label {
    min-width: 0;
}
.studio-controls input[type="file"] {
    display: block;
    overflow: hidden;
}
.studio-preview {
    position: sticky;
    top: 1rem;
    z-index: 1;
    width: 100%;
    max-width: 430px;
    justify-self: end;
    min-width: 0;
    padding: .8rem;
    background: #202126;
    border-radius: 16px;
    box-shadow: 0 20px 55px rgba(25,25,30,.2);
}
.studio-preview > small { display: block; padding: .75rem .3rem .1rem; color: #b8bbc1; }
.preview-toolbar {
    min-height: 44px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .7rem;
    color: #fff;
}
.preview-device {
    padding: .42rem .6rem;
    color: #d5d6da;
    background: transparent;
    border: 1px solid #4a4c54;
    border-radius: 7px;
    cursor: pointer;
}
.preview-device.active { color: #fff; background: var(--orange); border-color: var(--orange); }
.preview-frame-shell {
    width: 100%;
    height: min(72vh, 780px);
    margin: 0 auto;
    overflow: hidden;
    background: #fff;
    border-radius: 10px;
    transition: width .25s ease;
}
.preview-frame-shell[data-preview-shell="tablet"] { width: min(100%, 768px); }
.preview-frame-shell[data-preview-shell="mobile"] { width: min(100%, 390px); }
.preview-frame-shell iframe { width: 100%; height: 100%; border: 0; background: #fff; }
.preset-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.preset-card {
    position: relative;
    min-width: 0;
    padding: .75rem;
    display: grid;
    gap: .4rem;
    overflow: hidden;
    overflow-wrap: anywhere;
    cursor: pointer;
    border: 1px solid var(--line);
    border-radius: 12px;
}
.preset-card input { position: absolute; top: .55rem; right: .55rem; }
.preset-card:has(input:checked) { border-color: var(--orange); box-shadow: 0 0 0 3px rgba(242,106,0,.12); }
.preset-sample { height: 72px; display: block; border-radius: 8px; }
.preset-cinematic { background: linear-gradient(145deg, #19110e 0 42%, #a94924 43% 58%, #f7eee4 59%); }
.preset-editorial { background: linear-gradient(90deg, #ede6db 0 17%, #fff 17% 82%, #27272a 82%); }
.preset-elegant { background: linear-gradient(145deg, #182522 0 54%, #c7a85b 55% 58%, #f6f2e8 59%); }
.preset-minimal { background: linear-gradient(145deg, #f4f5f7 0 68%, #222 69% 76%, #fff 77%); }
.module-builder { display: grid; gap: .65rem; }
.module-row {
    padding: .75rem;
    display: grid;
    grid-template-columns: 28px minmax(180px, 1fr) minmax(155px, .8fr) 145px 82px auto;
    gap: .7rem;
    align-items: center;
    background: #f7f7f6;
    border: 1px solid var(--line);
    border-radius: 12px;
}
.module-row.is-dragging { opacity: .45; border-style: dashed; }
.module-grip { color: #888b91; cursor: grab; font-weight: 900; letter-spacing: -3px; }
.module-meta { display: grid; gap: .12rem; }
.module-meta small { color: var(--muted); }
.module-row label { margin: 0; }
.module-row input, .module-row select { margin: 0; min-height: 38px; padding: .5rem; }
.module-switch { display: grid !important; justify-items: center; gap: .2rem !important; font-size: .75rem; }
.module-switch input { min-height: auto; }
.module-arrows { display: grid; grid-template-columns: 1fr 1fr; gap: .2rem; }
.module-arrows button {
    width: 30px;
    height: 34px;
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 7px;
    cursor: pointer;
}

/* 0.6.0: schlanke Bearbeitung und geführte Erstellung */
.compact-head p { margin-bottom: 0; }
.setup-guide {
    margin-bottom: .75rem;
    padding: .75rem .85rem;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
}
.setup-guide-head {
    margin-bottom: .65rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
}
.setup-guide-head h2 { margin: 0; font-size: 1rem; }
.setup-guide ol {
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .35rem;
    list-style: none;
}
.setup-guide li {
    min-width: 0;
    padding: .48rem;
    display: flex;
    gap: .45rem;
    align-items: center;
    color: var(--muted);
    background: #f7f7f5;
    border-radius: 7px;
}
.setup-guide li > span {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    background: #e5e6e9;
    border-radius: 50%;
    font-size: .66rem;
    font-weight: 650;
}
.setup-guide li div { min-width: 0; display: grid; }
.setup-guide li strong { color: var(--ink); font-size: .78rem; font-weight: 650; }
.setup-guide li small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .67rem; }
.setup-guide li.done > span { color: #fff; background: var(--success); }
.setup-guide li.current { background: #fff5ec; }
.setup-guide li.current > span { color: #fff; background: var(--orange); }
.setup-guide li.optional > span { color: #785300; background: #fff0bf; }
.editor-section { padding: 0; overflow: clip; }
.editor-section > summary {
    min-height: 58px;
    padding: .7rem .85rem;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto 20px;
    gap: .8rem;
    align-items: center;
    cursor: pointer;
    list-style: none;
}
.editor-section > summary::-webkit-details-marker { display: none; }
.editor-section > summary::after {
    content: "+";
    grid-column: 4;
    color: var(--orange);
    font-size: 1.35rem;
    font-weight: 650;
}
.editor-section[open] > summary::after { content: "–"; }
.editor-section > summary h2 { margin: 0 0 .1rem; font-size: 1rem; }
.editor-section > summary small { display: block; font-weight: 500; }
.step-number {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    color: var(--orange-dark);
    background: #fff3e8;
    border-radius: 50%;
    font-size: .76rem;
    font-weight: 700;
}
.summary-state { color: var(--muted); font-size: .72rem; font-weight: 600; }
.editor-section-body { padding: .2rem .85rem .85rem; border-top: 1px solid var(--line); }
.editor-section-body > h2:first-child { display: none; }
.compact-stack { gap: .6rem; }
.compact-section-head { align-items: center; }
.compact-section-head h3 { margin: 0; }
.compact-repeater { gap: .55rem; }
.poll-option-row {
    padding: .65rem;
    display: grid;
    grid-template-columns: minmax(210px, 1fr) minmax(210px, 1fr) auto auto;
    gap: .55rem;
    align-items: end;
}
.poll-option-row label { margin: 0; }
.poll-option-row .button { margin-bottom: .05rem; }
.vote-total { align-self: center; white-space: nowrap; color: var(--muted); font-size: .8rem; font-weight: 800; }
.compact-options .choice { margin-top: 1.45rem; padding: .55rem; }
.inline-status { padding: .55rem .7rem; display: grid; align-content: center; background: #fff7ef; border: 1px solid #f2d1b5; border-radius: 8px; }
.inline-status small { display: block; }
.poll-finalize { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.poll-results-admin { display: grid; gap: .45rem; }
.poll-results-admin > div,
.poll-results-admin > form {
    margin: 0;
    padding: .6rem .7rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: .75rem;
    align-items: center;
    background: #f7f7f5;
    border: 1px solid var(--line);
    border-radius: 8px;
}
.badge.planning { color: #744700; background: #fff0bf; }

.wizard { width: min(720px, 100%); margin: 0 auto; padding: .85rem; }
.wizard-progress {
    margin: 0 0 1.25rem;
    padding: 0 0 1rem;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    border-bottom: 1px solid var(--line);
    list-style: none;
}
.wizard-progress li {
    display: flex;
    gap: .42rem;
    align-items: center;
    color: #8a8d93;
    font-size: .8rem;
    font-weight: 650;
}
.wizard-progress span {
    width: 25px;
    height: 25px;
    display: grid;
    place-items: center;
    background: #eceef1;
    border-radius: 50%;
    font-size: .7rem;
}
.wizard-progress li.active { color: var(--ink); }
.wizard-progress li.active span { color: #fff; background: var(--orange); }
.wizard-progress li.done span { color: #fff; background: var(--success); }
.wizard-step { animation: wizard-in .18s ease; }
.wizard-step > p { max-width: 620px; }
.wizard-actions {
    margin-top: 1rem;
    padding-top: .85rem;
    display: flex;
    justify-content: space-between;
    gap: .6rem;
    border-top: 1px solid var(--line);
}
.wizard-actions [data-wizard-next],
.wizard-actions [data-wizard-submit] { margin-left: auto; }
.mode-cards { margin-bottom: .75rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: .55rem; }
.mode-card {
    margin: 0;
    padding: .7rem;
    display: flex;
    grid-template-columns: none;
    align-items: flex-start;
    gap: .65rem;
    cursor: pointer;
    border: 1px solid var(--line);
    border-radius: 10px;
}
.mode-card:has(input:checked) { border-color: var(--orange); box-shadow: 0 0 0 3px rgba(242,106,0,.1); }
.mode-card span { display: grid; gap: .2rem; }
.mode-card small { font-weight: 500; }
.schedule-box { padding: .72rem; background: #f8f8f6; border: 1px solid var(--line); border-radius: 9px; }
.required-mark {
    margin-left: .3rem;
    color: var(--danger);
    font-size: .66rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.option-strip {
    margin-top: .7rem;
    padding: .65rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .6rem;
    align-items: end;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
}
.option-strip label { margin: 0; }
.module-choices {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
}
.module-choice {
    margin: 0;
    padding: .68rem;
    display: flex;
    grid-template-columns: none;
    align-items: flex-start;
    gap: .58rem;
    cursor: pointer;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 9px;
}
.module-choice:has(input:checked) {
    border-color: rgba(242,106,0,.58);
    background: #fffaf6;
}
.module-choice span { display: grid; gap: .12rem; }
.module-choice small { font-weight: 400; }
.wizard-skip-note { margin: .7rem 0 0; color: var(--muted); font-size: .8rem; }
.reminder-card {
    margin-top: .8rem;
    padding: .7rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    background: #f6f8fb;
    border: 1px solid #dbe2ea;
    border-radius: 8px;
}
.reminder-card div { display: grid; gap: .12rem; }
.reminder-card small { font-weight: 400; }
.reminder-card form { margin: 0; }
.wizard-summary { padding: .85rem; display: flex; flex-wrap: wrap; gap: .55rem; background: #f7f7f5; border-radius: 10px; }
.wizard-summary strong { width: 100%; }
.wizard-summary span { padding: .35rem .55rem; background: #fff; border: 1px solid var(--line); border-radius: 999px; font-size: .8rem; }
@keyframes wizard-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

/* Öffentliche Eventseite: variables Designsystem und frei sortierbare Module */
.event-page {
    background: var(--event-bg-color, var(--event-secondary));
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.event-page.body-humanist { font-family: "Trebuchet MS", "Segoe UI", sans-serif; }
.event-page.body-classic { font-family: Georgia, "Times New Roman", serif; }
.event-page::before {
    background-color: var(--event-bg-color, var(--event-secondary));
    background-position: var(--event-bg-position, center center);
}
.event-page.background-fixed::before { background-attachment: fixed; }
.event-page::after { background: var(--event-overlay, rgba(12,8,5,.62)); }
.event-page-wrap { width: min(var(--event-width, 740px), calc(100% - 2rem)); }
.event-invite-card { border-radius: var(--event-card-radius, 18px); }
.event-page.card-solid .event-invite-card { background: #fff; backdrop-filter: none; }
.event-page.card-dark .event-invite-card { color: #f3f0ea; background: rgba(24,24,26,.96); border-color: rgba(255,255,255,.16); }
.event-page.card-dark .event-content-block,
.event-page.card-dark .event-summary,
.event-page.card-dark .event-response-card,
.event-page.card-dark .event-sections { border-color: rgba(255,255,255,.13); }
.event-page.card-dark .detail,
.event-page.card-dark .hotel-card,
.event-page.card-dark input,
.event-page.card-dark select,
.event-page.card-dark textarea,
.event-page.card-dark .choice { color: #f3f0ea; background: #303034; border-color: #4a4a50; }
.event-page.card-dark .event-footer { color: #c7c7cb; background: #202024; border-color: #414147; }
.event-page.card-frameless .event-invite-card { overflow: visible; background: transparent; border: 0; box-shadow: none; backdrop-filter: none; }
.event-page.card-frameless .event-module {
    margin-bottom: .8rem;
    overflow: hidden;
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(255,255,255,.32);
    border-radius: var(--event-card-radius, 18px);
    box-shadow: 0 18px 50px rgba(0,0,0,.24);
}
.event-module > h2,
.event-summary > h2,
.event-sections > h2 {
    margin: 0 0 1rem;
    color: var(--event-secondary);
    font-size: clamp(1.28rem, 3vw, 1.65rem);
}
.heading-classic .event-module h1,
.heading-classic .event-module h2,
.heading-classic .event-module h3 { font-family: Georgia, "Times New Roman", serif; }
.heading-modern .event-module h1,
.heading-modern .event-module h2,
.heading-modern .event-module h3 { font-family: system-ui, sans-serif; font-weight: 850; letter-spacing: -.035em; }
.heading-elegant .event-module h1,
.heading-elegant .event-module h2,
.heading-elegant .event-module h3 { font-family: "Palatino Linotype", Palatino, Georgia, serif; font-weight: 500; }
.event-content-block,
.event-countdown,
.event-sections { padding: 1.25rem clamp(1.1rem, 4vw, 2rem); border-bottom: 1px solid var(--line); }
.event-sections .event-fold { margin: 0 calc(clamp(1.1rem, 4vw, 2rem) * -1); }
.event-sections .event-fold:last-child { border-bottom: 0; }
.event-module.layout-highlight {
    background: color-mix(in srgb, var(--event-primary) 9%, #fff);
    box-shadow: inset 4px 0 0 var(--event-primary);
}
.event-module.layout-compact { padding-top: .75rem; padding-bottom: .75rem; }
.event-module.layout-quiet { background: #f7f3ec; }
.event-invite-header.layout-highlight { box-shadow: inset 0 -5px 0 var(--event-primary); }
.event-invite-header.layout-compact { padding-block: .85rem; }
.event-countdown { text-align: center; }
.countdown-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; }
.countdown-grid span { padding: .85rem .5rem; color: var(--event-secondary); background: #f4efe8; border-radius: 10px; font-size: .76rem; text-transform: uppercase; }
.countdown-grid strong { display: block; font-size: clamp(1.4rem, 5vw, 2.15rem); }
.participant-chips { display: flex; flex-wrap: wrap; gap: .55rem; }
.participant-chips span { padding: .55rem .75rem; background: #f4efe8; border-radius: 999px; font-weight: 600; }
.date-poll-block > h2 { margin-bottom: .45rem; }
.poll-deadline { margin: .8rem 0; padding: .7rem .8rem; display: grid; background: #f4efe8; border-radius: 9px; }
.poll-deadline span { color: var(--muted); font-size: .75rem; font-weight: 650; text-transform: uppercase; }
.poll-mini-countdown { margin-bottom: .85rem; display: grid; grid-template-columns: repeat(4, 1fr); gap: .45rem; }
.poll-mini-countdown span { padding: .5rem .25rem; color: var(--muted); background: #f8f7f4; border: 1px solid var(--line); border-radius: 8px; text-align: center; font-size: .66rem; text-transform: uppercase; }
.poll-mini-countdown strong { display: block; color: var(--event-secondary); font-size: 1.15rem; }
.poll-options { margin: 0 0 .8rem; padding: 0; display: grid; gap: .5rem; border: 0; }
.poll-options legend { margin-bottom: .45rem; font-weight: 650; }
.poll-option {
    margin: 0;
    padding: .7rem .75rem;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .65rem;
    align-items: center;
    cursor: pointer;
    background: #f8f7f4;
    border: 1px solid var(--line);
    border-radius: 9px;
}
.poll-option:has(input:checked) { background: #fff4e9; border-color: var(--event-primary); }
.poll-option span { display: grid; }
.poll-option small { font-weight: 500; }
.poll-option > b { min-width: 27px; height: 27px; display: grid; place-items: center; color: #fff; background: var(--event-primary); border-radius: 50%; font-size: .75rem; }
.poll-live-results { margin-top: 1rem; padding-top: .85rem; display: grid; gap: .55rem; border-top: 1px solid var(--line); }
.poll-result-row { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(80px, .8fr) 24px; gap: .55rem; align-items: center; font-size: .8rem; }
.poll-result-row i { height: 7px; overflow: hidden; background: #ece8e2; border-radius: 999px; }
.poll-result-row i b { height: 100%; display: block; background: var(--event-primary); border-radius: inherit; }
.share-block .share { padding-top: 0; border-top: 0; }
.preview-notice {
    position: fixed;
    z-index: 20;
    top: .7rem;
    left: 50%;
    transform: translateX(-50%);
    padding: .45rem .75rem;
    color: #fff;
    background: rgba(20,20,22,.9);
    border-radius: 999px;
    box-shadow: 0 8px 25px rgba(0,0,0,.25);
    font-size: .76rem;
    font-weight: 800;
}

/* 0.8.0 – E-Mail & Kommunikation */
.subtabs {
    display: flex;
    gap: .35rem;
    margin: 0 0 1rem;
    padding: .28rem;
    width: fit-content;
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
}
.subtabs a {
    padding: .55rem .8rem;
    color: var(--muted);
    border-radius: 7px;
    text-decoration: none;
    font-size: .86rem;
    font-weight: 650;
    white-space: nowrap;
}
.subtabs a.active { color: #fff; background: var(--ink); }
.mail-settings-grid { align-items: start; }
.mail-log { max-height: 620px; overflow: auto; }
.mail-log table { min-width: 720px; }
.error-text { display: inline-block; max-width: 340px; color: #9f2929; line-height: 1.35; }
.mailstudio-layout {
    display: grid;
    grid-template-columns: minmax(180px, 230px) minmax(480px, 1fr) minmax(360px, 440px);
    gap: 1rem;
    align-items: start;
}
.template-nav {
    position: sticky;
    top: 1rem;
    display: flex;
    flex-direction: column;
    gap: .18rem;
    padding: .7rem;
}
.template-nav > .eyebrow { padding: .3rem .45rem; }
.template-nav > strong {
    margin: .65rem .45rem .2rem;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 750;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.template-nav a {
    padding: .48rem .55rem;
    color: var(--ink);
    border-radius: 7px;
    text-decoration: none;
    font-size: .82rem;
    line-height: 1.25;
}
.template-nav a:hover { background: #f1f2f4; }
.template-nav a.active { color: #fff; background: var(--orange); }
.mailstudio { min-width: 0; }
.compact-select { width: min(190px, 100%); margin: 0; }
.editor-mode-tabs {
    display: flex;
    gap: .25rem;
    margin-bottom: -.5rem;
}
.editor-mode-tabs button,
.wysiwyg-toolbar button,
.variable-chip {
    appearance: none;
    border: 1px solid var(--line);
    background: #fff;
    cursor: pointer;
}
.editor-mode-tabs button {
    padding: .48rem .72rem;
    border-radius: 7px 7px 0 0;
    color: var(--muted);
    font: 650 .8rem/1 var(--font-ui);
}
.editor-mode-tabs button.active { color: var(--orange-dark); border-bottom-color: #fff; background: #fff; }
.wysiwyg-pane { display: none; }
.wysiwyg-pane.active { display: block; }
.wysiwyg-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
    padding: .45rem;
    border: 1px solid var(--line);
    border-bottom: 0;
    border-radius: 8px 8px 0 0;
    background: #f7f7f8;
}
.wysiwyg-toolbar button {
    min-width: 32px;
    padding: .42rem .5rem;
    border-radius: 5px;
    color: var(--ink);
    font-size: .78rem;
}
.wysiwyg-toolbar button:hover { border-color: var(--orange); color: var(--orange-dark); }
.wysiwyg-editor {
    min-height: 380px;
    max-height: 650px;
    padding: 1.1rem;
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 0 0 8px 8px;
    background: #fff;
    color: #25262a;
    font: 400 .95rem/1.65 Arial, sans-serif;
    outline: none;
}
.wysiwyg-editor:focus { border-color: var(--orange); box-shadow: 0 0 0 2px rgb(242 106 0 / 10%); }
.wysiwyg-editor h1, .wysiwyg-editor h2, .wysiwyg-editor h3 { color: #25262a; font-family: Arial, sans-serif; }
.variable-picker {
    padding: .75rem;
    border: 1px dashed #c7c9cd;
    border-radius: 8px;
    background: #fafafa;
}
.variable-picker > strong { display: block; margin-bottom: .55rem; font-size: .82rem; }
.variable-chip {
    padding: .38rem .5rem;
    border-radius: 6px;
    color: #4d5056;
    font: .74rem/1.2 ui-monospace, SFMono-Regular, Consolas, monospace;
}
.variable-chip:hover { color: var(--orange-dark); border-color: var(--orange); }
.version-history { margin-top: 1rem; border-top: 1px solid var(--line); }
.version-history summary { padding: 1rem 0 .4rem; cursor: pointer; font-weight: 650; }
.mail-preview-panel { position: sticky; top: 1rem; min-width: 0; }
.mail-preview-panel .preview-toolbar { padding: 0; border: 0; background: transparent; }
.mail-preview-shell {
    width: 100%;
    height: 650px;
    margin: .8rem auto;
    overflow: hidden;
    border: 1px solid #d7d9dd;
    border-radius: 10px;
    background: #f2f3f5;
    transition: width .2s ease;
}
.mail-preview-shell.mobile { width: min(100%, 390px); }
.mail-preview-shell iframe { width: 100%; height: 100%; border: 0; background: #fff; }
.mail-preview-error {
    display: grid;
    place-items: center;
    height: 100%;
    padding: 1.5rem;
    color: #8f1d14;
    background: #fff4f2;
    text-align: center;
    font-size: .88rem;
    line-height: 1.55;
}
.mail-preview-error[hidden] { display: none; }

@media (max-width: 1500px) {
    .mailstudio-layout { grid-template-columns: minmax(180px, 220px) minmax(0, 1fr); }
    .mail-preview-panel { position: static; grid-column: 1 / -1; }
    .mail-preview-shell { height: 720px; }
}
@media (max-width: 900px) {
    .mailstudio-layout { grid-template-columns: minmax(0, 1fr); }
    .template-nav, .mail-preview-panel { position: static; grid-column: auto; }
    .template-nav { max-height: 330px; overflow: auto; }
    .compact-select { width: 100%; }
    .wysiwyg-editor { min-height: 300px; }
}
.docs-layout {
    display: grid;
    grid-template-columns: minmax(190px, 240px) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}
.docs-nav { position: sticky; top: 1rem; display: flex; flex-direction: column; gap: .2rem; padding: .65rem; }
.docs-nav a { padding: .55rem .65rem; color: var(--ink); border-radius: 7px; text-decoration: none; font-size: .84rem; }
.docs-nav a:hover { background: #f2f3f4; }
.docs-nav a.active { color: #fff; background: var(--orange); }
.docs-content pre {
    max-height: 75vh;
    margin: 0;
    padding: 1rem;
    overflow: auto;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    border-radius: 9px;
    background: #f6f7f8;
    color: #303238;
    font: .86rem/1.6 ui-monospace, SFMono-Regular, Consolas, monospace;
}
@media (max-width: 800px) {
    .docs-layout { grid-template-columns: minmax(0, 1fr); }
    .docs-nav { position: static; }
}

/* Presets */
.event-page.design-editorial .event-page-wrap { align-items: center; }
.event-page.design-editorial .event-invite-header { color: var(--event-secondary); background: #f7f3ec; text-align: left; }
.event-page.design-editorial .event-invite-header .eyebrow { color: var(--event-primary); }
.event-page.design-editorial .event-invite-header .subtitle { margin-left: 0; color: #5c5c61; }
.event-page.design-editorial .event-invite-header h1 { margin-left: 0; }
.event-page.design-elegant .event-invite-card { border: 1px solid color-mix(in srgb, var(--event-primary) 58%, #fff); }
.event-page.design-elegant .event-invite-header {
    color: #fff;
    background: linear-gradient(135deg, #182522, color-mix(in srgb, var(--event-secondary) 72%, #172723));
    box-shadow: inset 0 -3px 0 color-mix(in srgb, var(--event-primary) 70%, #d9c076);
}
.event-page.design-minimal::after { opacity: .35; }
.event-page.design-minimal .event-invite-card { box-shadow: 0 14px 38px rgba(0,0,0,.17); }
.event-page.design-minimal .event-invite-header { color: var(--event-secondary); background: #fff; }
.event-page.design-minimal .event-invite-header .eyebrow { color: var(--event-primary); }
.event-page.design-minimal .event-invite-header .subtitle { color: #666; }

@media (max-width: 1280px) {
    .studio-layout { grid-template-columns: 1fr; }
    .studio-preview { position: static; max-width: none; justify-self: stretch; }
}

@media (max-width: 900px) {
    .grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-shell { display: block; }
    .sidebar { position: static; width: 100%; height: auto; }
    .sidebar-meta { display: none; }
    .nav { display: flex; overflow-x: auto; }
    .nav a { white-space: nowrap; }
    .demo-panel { grid-template-columns: 1fr; }
    .hotel-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .row-controls { grid-template-columns: minmax(180px, 1fr) 100px 120px auto; }
    .preset-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .module-row { grid-template-columns: 24px minmax(180px, 1fr) 1fr 120px 75px auto; }
}
@media (max-width: 680px) {
    .install-shell, .grid.two, .grid.three, .grid.four, .event-details { grid-template-columns: 1fr; }
    .install-shell { padding: 2rem 0; }
    .install-intro { padding: 1rem 0; }
    .page-head { display: block; }
    .page-head .actions { margin-top: 1rem; }
    .topbar { align-items: flex-start; }
    .event-page.has-mobile-background::before { background-image: var(--event-mobile-image); background-position: var(--event-bg-position-mobile, center center); }
    .event-page-wrap { width: min(100% - 1rem, 620px); padding: .5rem 0 1rem; }
    .event-invite-card { border-radius: 12px; }
    .event-invite-header { padding-top: 1.15rem; }
    .choice-row { grid-template-columns: 1fr; }
    .demo-preview { padding-right: 8%; }
    .section-head { display: block; }
    .section-head form { margin-top: 1rem; }
    .check-grid { grid-template-columns: 1fr; }
    .hotel-row, .row-controls, .event-details.has-participant-count { grid-template-columns: 1fr; }
    .editor-jumps { top: 0; border-radius: 0; }
    .sticky-save .button { width: 100%; }
    .designer-teaser, .preview-toolbar { display: block; }
    .designer-teaser .button { margin-top: 1rem; }
    .preset-grid { grid-template-columns: 1fr 1fr; }
    .module-row { grid-template-columns: 24px minmax(0, 1fr) auto; }
    .module-row > label:not(.module-switch) { grid-column: 2 / -1; }
    .module-switch { grid-column: 2; justify-items: start; grid-template-columns: auto 1fr !important; }
    .module-arrows { grid-column: 3; grid-row: 1; }
    .countdown-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .mode-cards { grid-template-columns: 1fr; }
    .module-choices, .option-strip { grid-template-columns: 1fr; }
    .reminder-card { align-items: stretch; flex-direction: column; }
    .setup-guide-head { align-items: stretch; flex-direction: column; }
    .setup-guide ol { grid-template-columns: 1fr; }
    .setup-guide li small { white-space: normal; }
    .wizard-progress li { justify-content: center; font-size: 0; }
    .wizard-progress span { font-size: .7rem; }
    .poll-option-row { grid-template-columns: 1fr; }
    .poll-results-admin > div, .poll-results-admin > form { grid-template-columns: 1fr; }
    .editor-section > summary { grid-template-columns: 32px minmax(0, 1fr) 20px; }
    .editor-section > summary::after { grid-column: 3; grid-row: 1; }
    .summary-state { display: none; }
}
@media print {
    .sidebar, .topbar, .actions, .button, .share, form { display: none !important; }
    .admin-shell { display: block; }
    .admin-content { width: 100%; padding: 0; }
    .panel, .event-invite-card { box-shadow: none; border: 0; }
    .event-page::before, .event-page::after { display: none; }
    .event-page-wrap { width: 100%; padding: 0; }
    .print-only { display: block; }
}
.sbem-honeypot {
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.poll-identity-fields {
  align-items: end;
}

.personal-link {
  display: grid;
  gap: 8px;
  margin: 12px 0;
  padding: 12px;
  border: 1px solid color-mix(in srgb, var(--event-primary, #f26a00) 24%, transparent);
  border-radius: 12px;
}

.poll-voter-overview {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}

.poll-voter-overview table {
  min-width: 760px;
}

.compact-list {
  display: grid;
  gap: 4px;
  margin: 0;
  padding-left: 18px;
}

.poll-followup-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface-soft);
}

.poll-followup-actions > div {
  display: grid;
  gap: 2px;
  margin-right: auto;
}
