.campaign-builder{min-width:0}.campaign-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0;margin:0 0 1.5rem;list-style:none;gap:.65rem}.campaign-steps li{font-size:.8rem;color:var(--muted);display:flex;align-items:center;gap:.5rem}.campaign-steps li>span{display:grid;place-items:center;flex:none;width:1.8rem;height:1.8rem;border-radius:8px;background:var(--rose);color:var(--burgundy);font-weight:800}.campaign-steps li[aria-current]{color:var(--burgundy);font-weight:800}.campaign-steps li[aria-current]>span{background:var(--red);color:white}.campaign-workspace{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(250px,.85fr);gap:1.5rem;align-items:start}.campaign-fields{min-width:0}.campaign-fields fieldset{border:0;margin:0;padding:0;min-width:0}.campaign-fields fieldset[hidden],.campaign-builder-actions [hidden]{display:none!important}.campaign-fields legend{font-size:1.25rem;font-weight:800;margin-bottom:1rem}.campaign-fields label{margin-bottom:1.2rem}.campaign-package{padding:1.3rem;background:linear-gradient(135deg,#fff7f8,#f9e9ee);border:1px solid #eed3dc;border-radius:20px;margin-top:1rem}.campaign-package strong{font-size:2rem;color:var(--burgundy)}.campaign-package small{display:block;color:var(--muted)}.campaign-upload{position:relative;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.8rem 1rem;border:2px dashed #ba7b91;border-radius:16px;background:#fff8fa;cursor:pointer}.campaign-upload:focus-within{outline:3px solid var(--burgundy);outline-offset:3px}.campaign-upload input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.campaign-upload small{font-weight:400}.campaign-builder-actions{display:flex;gap:.7rem;justify-content:space-between;flex-wrap:wrap}.campaign-preview-column{position:sticky;top:100px;min-width:0}.campaign-live-preview{position:relative;isolation:isolate;aspect-ratio:3/4;max-height:540px;border-radius:24px;overflow:hidden;display:flex;align-items:end;background:linear-gradient(145deg,#9c234c,#300f1c);color:white;box-shadow:0 18px 45px #510e241a}.campaign-live-preview:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#260a19fa,transparent 90%);z-index:-1}.campaign-live-preview>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.campaign-live-preview>img.placeholder{object-fit:contain;width:35%;height:35%;inset:12% auto auto 32.5%;opacity:.6}.campaign-preview-copy{padding:1.5rem;min-width:0;width:100%;overflow-wrap:anywhere}.campaign-preview-copy h3{color:white;font-size:1.7rem;line-height:1.12;margin:.8rem 0}.campaign-preview-copy p{color:#fff1f6;font-size:.9rem;line-height:1.45;white-space:pre-wrap}.campaign-preview-copy .tag{background:white;color:#6d1532}.campaign-preview-copy .button{margin-top:.5rem;display:inline-flex;font-size:.9rem;pointer-events:none}.campaign-summary{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.75rem;overflow-wrap:anywhere}.campaign-summary dt{font-weight:700}.campaign-summary dd{margin:0}.campaign-next-steps{padding-left:1.2rem;line-height:1.6}.campaign-next-steps li{margin:.6rem 0}.campaign-preview-column>.muted{font-size:.8rem;line-height:1.5}.campaign-builder #campaign-feedback:empty{display:none}@media(max-width:1000px){.campaign-workspace{grid-template-columns:minmax(0,1fr)}.campaign-preview-column{position:static;max-width:360px;justify-self:center;width:100%}.campaign-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.campaign-fields{padding:1.2rem}.campaign-live-preview{max-height:none}}@media(prefers-reduced-motion:no-preference){.campaign-fields fieldset:not([hidden]){animation:campaign-step-in .18s ease-out}@keyframes campaign-step-in{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}}
.campaign-offer-editor{display:grid;gap:16px;margin-bottom:24px}.campaign-product-editor{padding:14px;border:1px solid #efcfda;border-radius:16px;background:#fff7fa}.campaign-product-editor summary{cursor:pointer;font-weight:700;color:#64162b;min-height:32px}.campaign-product-editor label{margin-top:12px}.campaign-offer-editor h3,.campaign-offer-editor p{margin:0}

/* Werben: campaign list, detail and wizard (light Festl design, burgundy accents) */
.cw-list{display:grid;gap:18px;min-width:0}
.cw-list-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.cw-list-head h2{margin:4px 0 6px}.cw-list-head p{margin:0;color:var(--muted);font-size:14px;max-width:560px}.cw-list-head .button{flex:none}
.cw-how{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.cw-how li{display:flex;gap:10px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff;min-width:0}.cw-how b{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:9px;background:var(--rose);color:var(--burgundy);font-size:13px}.cw-how strong{display:block;font-size:13px;color:var(--ink)}.cw-how small{display:block;font-size:12px;color:var(--muted);line-height:1.4;margin-top:3px}

.cw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.cw-card{display:grid;gap:12px;padding:16px!important;min-width:0;transition:box-shadow .15s,transform .15s}.cw-card:hover{box-shadow:0 14px 34px #64162b14}
.cw-card-open{display:flex;gap:14px;align-items:center;text-align:left;background:none;border:0;padding:0;color:inherit;cursor:pointer;min-width:0;font:inherit}.cw-card-open:focus-visible{outline:3px solid var(--burgundy);outline-offset:4px;border-radius:12px}
.cw-thumb{flex:none;width:72px;height:88px;border-radius:14px;overflow:hidden;background:linear-gradient(145deg,#9c234c,#300f1c);display:grid;place-items:center;color:#fff;font-size:11px}.cw-thumb img{width:100%;height:100%;object-fit:cover}
.cw-card-copy{display:grid;gap:5px;min-width:0}.cw-card-copy strong{font-size:16px;line-height:1.25;color:var(--ink);overflow-wrap:anywhere}.cw-card-copy small{color:var(--muted);font-size:12px}
.cw-badge{justify-self:start;display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.2px;border-radius:999px;padding:4px 10px;background:#f3eef1;color:#6d5663;border:1px solid #e8dde3}
.cw-badge-live{background:#e8f6ee;color:#1f7a4c;border-color:#cfe9da}.cw-badge-live:before{content:'';width:7px;height:7px;border-radius:50%;background:#23a061;box-shadow:0 0 0 3px #23a06122}
.cw-badge-scheduled{background:#eef3fb;color:#2f5b9a;border-color:#d9e3f3}.cw-badge-pending_approval{background:#fff6e5;color:#8a5a12;border-color:#f0e0bd}.cw-badge-approved_pending_payment{background:#fff0f2;color:var(--red-ink);border-color:#f5d0d6}.cw-badge-rejected{background:#fdeeee;color:#a3303b;border-color:#f3d2d5}.cw-badge-draft{background:#f6f2f5;color:#6e5a66}.cw-badge-ended{background:#f1f1f3;color:#62636b;border-color:#e0e0e5}
.cw-card-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.cw-chip{display:inline-flex;font-size:12px;border-radius:8px;padding:4px 8px;background:#faf7f9;border:1px solid var(--line);color:#6b5260}.cw-chip-reserved{background:#fff8ea;border-color:#f0e2c2;color:#7d5715}.cw-chip-paid{background:#edf8f2;border-color:#d3ebdd;color:#1f6f47}.cw-chip-warn{background:#fff0f2;border-color:#f5d0d6;color:var(--red-ink)}.cw-chip-test{background:#eef0ff;border-color:#d9ddfb;color:#3a45a8;font-weight:700}
.cw-reason{margin:4px 0 0;font-size:13px;color:#8e3440;background:#fff5f6;border-radius:10px;padding:8px 10px;width:100%}
.cw-mini-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.cw-mini-stats span{display:grid;gap:2px;padding:8px 10px;border-radius:12px;background:#fbf8fa;font-size:11px;color:var(--muted)}.cw-mini-stats b{font-size:16px;color:var(--ink)}
.cw-card-actions{display:flex;flex-wrap:wrap;gap:8px}.cw-card-actions>*{flex:1 1 auto;min-height:42px}
.cw-card.is-ended,.cw-detail.is-ended .cw-detail-head{background:#f7f7f8!important}.cw-card.is-ended .cw-thumb,.cw-card.is-ended .cw-card-copy strong{filter:grayscale(1);opacity:.7}.cw-card.is-ended{opacity:.85}
.cw-empty{display:grid;gap:12px}.cw-empty h3,.cw-empty p{margin:0}
/* detail */
.cw-detail{display:grid;gap:16px;min-width:0}.cw-detail-head{display:grid;gap:8px}.cw-detail-head h2{margin:0;overflow-wrap:anywhere}.cw-detail-head>p{margin:0;color:var(--muted)}
.cw-detail-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:16px;align-items:start}
.cw-detail-preview h3,.cw-detail-insights h3{margin:0 0 12px;font-size:15px}
.cw-ad-frame{max-width:340px;margin:0 auto;border-radius:28px;padding:8px;background:#1d0a12;box-shadow:0 20px 50px #3b0b1f30}.cw-ad-frame .fc-ad-card{height:auto!important;min-height:0!important;aspect-ratio:3/4.4;border-radius:22px;cursor:default}.cw-ad-noimage .fc-media>img{object-fit:contain!important;padding:30% 25% 55%;background:linear-gradient(145deg,#9c234c,#300f1c)}
.cw-ad-more{margin-top:14px;border:1px solid var(--line);border-radius:14px;padding:10px 14px;background:#fff}.cw-ad-more summary{cursor:pointer;font-weight:700;color:var(--burgundy)}
.cw-note{font-size:12px;color:var(--muted);line-height:1.5;margin:10px 0 0}
.cw-detail-insights{display:grid;gap:14px;min-width:0}.cw-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.cw-kpi{display:grid;gap:3px;padding:14px;border-radius:14px;background:#fbf7f9;border:1px solid #f0e3e8}.cw-kpi b{font-size:24px;color:var(--burgundy);line-height:1.1}.cw-kpi span{font-size:13px;font-weight:700;color:var(--ink)}.cw-kpi small{font-size:11px;color:var(--muted);line-height:1.35}
.cw-chart{display:flex;align-items:flex-end;gap:6px;height:160px;padding:8px 0 22px;overflow-x:auto}.cw-bar{position:relative;flex:1 0 24px;max-width:56px;height:100%;display:flex;align-items:flex-end;justify-content:center}.cw-bar-views{position:absolute;bottom:0;left:15%;right:15%;background:#f1c9d3;border-radius:6px 6px 2px 2px;min-height:2px}.cw-bar-clicks{position:absolute;bottom:0;left:32%;right:32%;background:var(--wine);border-radius:4px 4px 1px 1px;min-height:0}.cw-bar small{position:absolute;bottom:-20px;font-size:10px;color:var(--muted);white-space:nowrap}
.cw-legend{font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center;margin:4px 0 0}.cw-legend i{display:inline-block;width:10px;height:10px;border-radius:3px}.cw-dot-views{background:#f1c9d3}.cw-dot-clicks{background:var(--wine)}
.cw-facts{display:grid;gap:0;margin:0}.cw-facts>div{display:grid;grid-template-columns:minmax(120px,210px) minmax(0,1fr);gap:12px;padding:10px 0;border-top:1px solid #f1e6ea}.cw-facts>div:first-child{border-top:0}.cw-facts dt{font-size:13px;color:var(--muted)}.cw-facts dd{margin:0;font-size:13px;color:var(--ink);overflow-wrap:anywhere}
/* wizard */
.cw-steps li.is-done>span{background:#e8f6ee;color:#1f7a4c}
.cw-field-row{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:12px}
.cw-optional{margin-top:18px;border:1px solid var(--line);border-radius:16px;padding:12px 16px;background:#fffafb}.cw-optional>summary{cursor:pointer;font-weight:800;color:var(--burgundy);min-height:30px;display:flex;align-items:center}.cw-optional[open]>summary{margin-bottom:12px}
.cw-pay-card{display:grid;gap:12px;justify-items:start;padding:20px;border-radius:20px;border:1px solid #eed3dc;background:linear-gradient(135deg,#fff,#fff5f7)}.cw-pay-card h3{margin:0;font-size:18px;color:var(--ink);overflow-wrap:anywhere}.cw-pay-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}.cw-pay-ready{border-color:#cfe9da;background:linear-gradient(135deg,#fff,#f1faf5)}.cw-pay-card>.button[data-authorize],#app #campaign-builder .cw-pay-card>.button[data-authorize]{white-space:nowrap;width:100%;justify-content:center}.cw-pay-blocked{border-color:#f0e0bd;background:#fffaf0}
.cw-methods{display:flex!important;flex-wrap:wrap;gap:6px}.cw-methods span{font-size:12px;font-weight:700;border:1px solid var(--line);border-radius:8px;padding:4px 9px;background:#fff;color:#5d4553}
.cw-honest{margin:14px 0 0;font-size:13px;line-height:1.55;color:var(--muted);border-left:3px solid #f1c9d3;padding:2px 0 2px 12px}.cw-honest strong{color:var(--ink)}
.cw-next li{margin:.5rem 0}
@media(max-width:1000px){.cw-detail-grid{grid-template-columns:minmax(0,1fr)}.cw-how{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.cw-how{grid-template-columns:minmax(0,1fr)}.cw-grid{grid-template-columns:minmax(0,1fr)}.cw-field-row{grid-template-columns:minmax(0,1fr)}.cw-list-head .button{width:100%}.cw-facts>div{grid-template-columns:minmax(0,1fr);gap:2px}.cw-card-actions>*{flex:1 1 100%}.campaign-steps li{font-size:.75rem}}
.cw-list .panel,.cw-detail .panel{max-width:none;margin:0}.cw-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
@media(max-width:560px){.cw-grid{grid-template-columns:minmax(0,1fr)}}
/* Wizard timeline (festl-v353): one horizontal line on every device, current step highlighted, done steps checked. */
.campaign-steps.cw-steps{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0 0 1.5rem;padding:4px 0 0;counter-reset:none}
.campaign-steps.cw-steps li{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;padding:0 4px;text-align:center;font-size:.82rem;font-weight:700;color:var(--muted);line-height:1.25}
.campaign-steps.cw-steps li::before{content:"";position:absolute;top:17px;left:calc(-50% + 22px);right:calc(50% + 22px);height:3px;border-radius:3px;background:var(--line);transition:background .25s ease}
.campaign-steps.cw-steps li:first-child::before{display:none}
.campaign-steps.cw-steps li.is-done::before,.campaign-steps.cw-steps li[aria-current]::before{background:var(--red)}
.campaign-steps.cw-steps .cw-step-dot{position:relative;z-index:1;display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;border:2px solid var(--line);background:#fff;color:var(--muted);font-weight:800;font-size:.9rem;box-sizing:border-box;transition:background .25s ease,border-color .25s ease,color .25s ease,box-shadow .25s ease}
.campaign-steps.cw-steps .cw-step-dot i{font-style:normal}
.campaign-steps.cw-steps li[aria-current]{color:var(--burgundy)}
.campaign-steps.cw-steps li[aria-current] .cw-step-dot{background:var(--red);border-color:var(--red);color:#fff;box-shadow:0 0 0 5px var(--red-soft)}
.campaign-steps.cw-steps li.is-done{color:var(--burgundy)}
.campaign-steps.cw-steps li.is-done .cw-step-dot{background:var(--red-soft);border-color:var(--red);color:var(--red-ink)}
.campaign-steps.cw-steps li.is-done .cw-step-dot i{display:none}
.campaign-steps.cw-steps li.is-done .cw-step-dot::after{content:"";width:12px;height:7px;margin-top:-3px;border-left:2.5px solid var(--red-ink);border-bottom:2.5px solid var(--red-ink);transform:rotate(-45deg)}
.campaign-steps.cw-steps li>.cw-step-label,.campaign-steps.cw-steps li[aria-current]>.cw-step-label,.cw-steps li.is-done>.cw-step-label{display:block;width:auto;height:auto;max-width:100%;border-radius:0;background:none;color:inherit;font-weight:inherit;overflow-wrap:normal;word-break:normal;hyphens:auto}
@media(max-width:560px){
 .campaign-steps.cw-steps li{font-size:.72rem;gap:6px;padding:0 2px}
 .campaign-steps.cw-steps .cw-step-dot{width:30px;height:30px;font-size:.8rem}
 .campaign-steps.cw-steps li::before{top:14px;left:calc(-50% + 18px);right:calc(50% + 18px)}
 .campaign-steps.cw-steps li[aria-current] .cw-step-dot{box-shadow:0 0 0 4px var(--red-soft)}
}
@media(prefers-reduced-motion:reduce){.campaign-steps.cw-steps li::before,.campaign-steps.cw-steps .cw-step-dot{transition:none}}
.cw-package-facts{margin:.35rem 0 0;font-size:.82rem;color:var(--burgundy);font-weight:700}

/* festl-v361: wizard bottom row labels (Zurück · Speichern · Zahlung) never wrap. */
/* Specificity (2,1,1) beats product.css `.product-host #app :is(a.ghost,button.ghost,.button):not([hidden])` (1,3,1), which sets white-space:normal. */
.campaign-builder-actions>:is(button,a,.button),#app #campaign-builder .campaign-builder-actions>:is(button,a,.button){white-space:nowrap}

/* Event of an existing campaign (or the only possible event): read-only text instead of a one-option select. */
.cw-event-fixed-value{display:grid;gap:2px;margin:0;font-weight:400;padding:12px 14px;border:1px solid #f1e6ea;border-radius:12px;background:#fbf7f8;overflow-wrap:anywhere}
.cw-event-fixed-value strong{font-size:15px;color:var(--ink)}
.cw-event-fixed-value>span{font-size:13px;color:var(--muted)}
