:root{--blue:#0b3284;--blue2:#123b92;--ink:#102f78;--yellow:#ffca05;--pale:#f5f7fb;--line:#dfe5ef;--muted:#69758a;--danger:#9b2424}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#fff}body{font-family:Arial,Helvetica,sans-serif;color:var(--ink)}
.wrap{width:100%;min-height:100vh;position:relative;overflow:hidden;padding:5.4vh 5.2vw 10vh;background:#fff}
.wrap:after{content:"";position:absolute;right:-1.5vw;bottom:-3.8vh;width:28vw;height:17vh;border:2.25vw solid var(--yellow);border-left-color:transparent;border-bottom-color:transparent;border-radius:58% 48% 0 0;transform:rotate(7deg);pointer-events:none;z-index:0}
.wrap>*{position:relative;z-index:1}.top{display:none}
.slide-kicker{font-size:clamp(25px,2.35vw,39px);font-weight:700;line-height:1.05;color:var(--blue);margin:0}.step,.section-number{margin:.8vh 0 0;font-size:clamp(11px,.9vw,15px);font-weight:700;letter-spacing:.025em;color:var(--ink);text-transform:uppercase}.step span{color:var(--yellow);padding:0 .35em}.title{font-size:clamp(34px,3.35vw,57px);line-height:1.08;letter-spacing:-.025em;font-weight:400;margin:7.5vh 0 4vh;max-width:91vw;color:var(--ink)}
.vote-stage,.results-stage,.presentation-panel{max-width:91vw}.vote-options,.presentation-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25vh 2vw;max-width:90vw}.option,.presentation-options div{position:relative;display:flex;align-items:center;min-height:6.4vh;padding:1.25vh 1.3vw;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 3px 12px rgba(11,50,132,.045);font-size:clamp(14px,1.08vw,18px);line-height:1.25;color:var(--ink);cursor:pointer;transition:.16s ease}.option:hover{transform:translateY(-1px);border-color:#aebbd2;box-shadow:0 7px 20px rgba(11,50,132,.09)}.option input{position:absolute;opacity:0;pointer-events:none}.option:has(input:checked){background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 8px 22px rgba(11,50,132,.2);padding-right:3.2vw}.option:has(input:checked):after{content:"✓";position:absolute;right:1.25vw;width:26px;height:26px;border-radius:50%;background:var(--yellow);color:var(--blue);display:grid;place-items:center;font-weight:900}.subtitle,.big-muted{font-size:clamp(12px,.95vw,15px);color:var(--muted);margin:1.7vh 0 .5vh}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:8px;text-decoration:none;background:var(--blue);color:#fff;padding:12px 22px;font:700 15px Arial,sans-serif;cursor:pointer;margin:1.4vh 10px 0 0;box-shadow:0 5px 14px rgba(11,50,132,.14);transition:.15s}.btn:hover{background:var(--blue2);transform:translateY(-1px)}.btn.secondary{background:#fff;color:var(--blue);border:1px solid var(--line);box-shadow:none}.btn.huge{font-size:16px;padding:14px 25px}.btn.compact{font-size:13px;padding:10px 15px}
.footer{position:absolute;left:5.2vw;right:5.2vw;bottom:5.2vh;font-size:clamp(10px,.82vw,13px);font-weight:700;color:var(--blue);z-index:2}.footer:after{content:"  ●  Klausurtagung der Versammlung · Vision 2035";color:var(--blue)}.footer .dot{color:var(--yellow);font-size:0}.footer:before{content:""}
.waiting-stage,.thanks,.waiting{max-width:74vw;margin:1vh 0;padding:2vh 0;font-size:clamp(19px,1.55vw,26px);font-weight:700}.waiting-stage:before,.thanks:before,.waiting:before{content:"";display:block;width:68px;height:6px;border-radius:4px;background:var(--yellow);margin-bottom:2vh}.waiting-stage span,.thanks span{display:block;margin-top:1vh;color:var(--muted);font-size:15px;font-weight:400}
.result-title{font-size:clamp(13px,1vw,16px);color:var(--muted);margin:-1.2vh 0 2.5vh}.barrow{margin:0 0 1.6vh;max-width:88vw}.barlabel{display:flex;justify-content:space-between;gap:30px;font-size:clamp(14px,1.08vw,18px);margin-bottom:.55vh}.barlabel b{white-space:nowrap;color:var(--blue)}.bartrack{height:1.5vh;min-height:12px;background:#edf1f7;border-radius:999px;overflow:hidden}.bar{height:100%;background:linear-gradient(90deg,var(--blue),#174aa7);border-radius:999px;animation:grow .65s ease both}@keyframes grow{from{max-width:0}}.answercard{padding:1.2vh 1vw;margin:.7vh 0;border-left:5px solid var(--yellow);background:var(--pale);border-radius:0 10px 10px 0;font-size:clamp(14px,1.1vw,18px)}.wordcloud{display:flex;flex-wrap:wrap;gap:2vh 2vw;justify-content:center;align-items:center;padding:2vh}.word{font-weight:700;color:var(--blue)}
/* Moderator: control center, not a presentation page */
body:has(.control-center) .wrap{background:#f5f7fb;padding:3vh 3vw 8vh}body:has(.control-center) .wrap:after{display:none}body:has(.control-center) .footer{display:none}.control-center{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(310px,.7fr);gap:24px;max-width:1500px;margin:auto}.preview-shell,.control-panel{background:#fff;border:1px solid #e3e8f0;border-radius:18px;box-shadow:0 8px 28px rgba(15,44,105,.07)}.preview-shell{padding:32px 34px;min-height:70vh}.control-panel{padding:26px;align-self:start;position:sticky;top:3vh}.control-panel h2{margin:0 0 6px;font-size:22px}.control-panel .meta{color:var(--muted);font-size:13px}.mod-preview-title{font-size:clamp(27px,2.5vw,43px);line-height:1.08;font-weight:400;margin:5vh 0 3vh}.presentation-options{grid-template-columns:1fr 1fr;max-width:none}.presentation-options div{border-radius:10px;min-height:52px}.statusline{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.pill{padding:7px 10px;border-radius:999px;background:#eef1f5;color:var(--muted);font-size:12px;font-weight:700}.pill.on{background:#e8eefb;color:var(--blue)}.livecount{padding:16px;border-radius:12px;background:var(--pale);margin:14px 0}.livecount b{font-size:36px;display:block;line-height:1;color:var(--blue)}.livecount span{font-size:12px;color:var(--muted)}.actions form{display:grid;gap:8px}.actions .btn{width:100%;margin:0}.allquestions{max-width:1500px;margin:18px auto}.allquestions summary{cursor:pointer;font-weight:700;color:var(--blue)}.questionlist{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.questionrow button{width:100%;height:100%;text-align:left;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px;cursor:pointer;color:var(--ink)}.questionrow.active button{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.downloads{max-width:1500px;margin:15px auto;padding:15px 0;border-top:1px solid var(--line)}
.textanswers input,input[type=password]{width:100%;max-width:76vw;padding:14px 16px;border:1px solid var(--line);border-radius:9px;font-size:16px;margin:6px 0;color:var(--ink)}.limit-error{margin:1.4vh 0;padding:10px 12px;border-left:4px solid var(--danger);background:#fff3f3;color:var(--danger);font-weight:700;max-width:76vw}.finish-screen{padding-top:25vh}.finish-title{font-size:clamp(55px,6vw,96px);line-height:1;font-weight:700;letter-spacing:-.04em;color:var(--blue);margin:0 0 2vh}.finish-screen p{font-size:clamp(15px,1.25vw,20px);max-width:720px}.finish-downloads{margin-top:2vh}
@media(max-width:850px){.wrap{padding:28px 18px 90px}.wrap:after{width:60vw;height:13vh;border-width:28px;right:-16vw}.slide-kicker{font-size:24px}.title{font-size:31px;margin:42px 0 25px}.vote-options,.presentation-options,.questionlist{grid-template-columns:1fr}.option{min-height:56px;padding:13px 15px}.footer{left:18px;right:18px;bottom:18px}.control-center{grid-template-columns:1fr}.control-panel{position:static}.preview-shell{min-height:auto;padding:22px}.questionlist{grid-template-columns:1fr 1fr}.btn.huge{width:100%;margin-right:0}.textanswers input{max-width:100%}}

/* V8: PPT-CI ribbon and moderator slide preview */
.preview-shell{position:relative;overflow:hidden;padding-bottom:92px}
.preview-shell:after{content:"";position:absolute;right:-22px;bottom:-42px;width:300px;height:145px;border:34px solid var(--yellow);border-left-color:transparent;border-bottom-color:transparent;border-radius:60% 48% 0 0;transform:rotate(7deg);pointer-events:none}
.preview-shell:before{content:"Medienanstalt Rheinland-Pfalz   ●   Klausurtagung der Versammlung   ●   Vision 2035";position:absolute;left:34px;bottom:28px;font-size:11px;font-weight:700;color:var(--blue);z-index:2}
.control-panel{border-top:6px solid var(--yellow)}
.control-panel h2{color:var(--blue)}
.mod-page-no{position:absolute;right:34px;bottom:28px;font-size:11px;font-weight:700;color:var(--blue);z-index:2}
@media(max-width:850px){.preview-shell:after{width:190px;height:100px;border-width:24px;right:-38px;bottom:-30px}.preview-shell:before{left:22px;bottom:18px;font-size:9px;max-width:58%}.mod-page-no{right:22px;bottom:18px;font-size:9px}}

/* V9: actual CI wave + welcome state */
.wrap:after{right:-.5vw;bottom:-.3vh;width:30vw;height:22vh;border:0;border-radius:0;transform:none;background:url('/static/wave.svg') right bottom/100% 100% no-repeat}
.preview-shell:after{right:-1px;bottom:-1px;width:34%;height:24%;border:0;border-radius:0;transform:none;background:url('/static/wave.svg') right bottom/100% 100% no-repeat}
.welcome-screen{padding-top:9vh;max-width:1050px}.welcome-eyebrow{font-size:clamp(12px,1vw,16px);font-weight:700;letter-spacing:.04em;color:var(--blue)}.welcome-eyebrow span{color:var(--yellow);padding:0 .45em}.welcome-screen h1,.preview-welcome h1{font-size:clamp(58px,7vw,112px);line-height:.95;letter-spacing:-.045em;color:var(--blue);margin:7vh 0 2vh}.welcome-screen p,.preview-welcome p{font-size:clamp(22px,2vw,34px);margin:0;color:var(--ink)}.welcome-note{margin-top:5vh;max-width:760px;padding:18px 20px;border-left:6px solid var(--yellow);background:#f7f9fc;border-radius:0 12px 12px 0;color:var(--muted);font-size:17px;line-height:1.45}.preview-welcome{padding-top:5vh}.preview-welcome h1{font-size:clamp(48px,5vw,82px);margin-top:6vh}.preview-welcome p{font-size:clamp(20px,1.8vw,30px)}.welcome-control{padding:16px;margin:18px 0;background:var(--pale);border-radius:12px;color:var(--muted);line-height:1.4}.control-panel>form .btn{width:100%;margin:0}.preview-shell:before{content:"Medienanstalt Rheinland-Pfalz   ●   Klausurtagung der Versammlung   ●   Vision 2035"}

.survey-manager{margin:18px 0;padding:18px 20px;background:#fff;border:1px solid #e2e8f0;border-radius:18px;display:grid;grid-template-columns:1.1fr 1.5fr 1.5fr 1.7fr;gap:12px;align-items:end;box-shadow:0 8px 24px rgba(6,72,148,.06)}.survey-manager>div{display:flex;flex-direction:column;gap:5px;color:#064894}.survey-manager>div span{font-size:13px;color:#667085}.survey-inline{display:flex;gap:8px;align-items:center}.survey-inline input,.survey-inline select{width:100%;min-width:0;border:1px solid #d7e0eb;border-radius:10px;padding:10px 12px;color:#063b7a;background:white}.navbtn{margin-right:8px}@media(max-width:1000px){.survey-manager{grid-template-columns:1fr}.survey-inline{width:100%}}

/* Teilnahme-QR auf der Willkommensseite */
.welcome-qr {
    margin-top: 30px;
    display: inline-flex;
    align-items: center;
    gap: 28px;
    padding: 20px 22px 20px 28px;
    background: #ffffff;
    border: 1px solid #dce3eb;
    border-radius: 18px;
    box-shadow: 0 8px 28px rgba(6,72,148,.08);
    text-align: left;
}

.welcome-qr-text {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.welcome-qr-text strong {
    color: #064894;
    font-size: 25px;
    font-weight: 700;
}

.welcome-qr-text span {
    color: #334155;
    font-size: 17px;
}

.welcome-qr-text small {
    margin-top: 6px;
    color: #64748b;
    font-size: 14px;
}

.welcome-qr-image {
    padding: 7px;
    background: #fff;
    border-radius: 10px;
}

.welcome-qr-image img {
    display: block;
    width: 150px;
    height: 150px;
}

@media (max-width: 700px) {
    .welcome-qr {
        flex-direction: column;
        gap: 12px;
        padding: 18px;
        text-align: center;
    }

    .welcome-qr-text {
        align-items: center;
    }

    .welcome-qr-image img {
        width: 140px;
        height: 140px;
    }
}

/* QR-Code nur auf der Moderator-Willkommensfolie */
.moderator-qr {
    margin: 30px auto 0;
    display: inline-flex;
    align-items: center;
    gap: 30px;
    padding: 18px 28px 18px 18px;
    background: #ffffff;
    border: 1px solid #dce3eb;
    border-radius: 18px;
    box-shadow: 0 8px 30px rgba(6,72,148,.10);
    text-align: left;
}

.moderator-qr img {
    display: block;
    width: 190px;
    height: 190px;
    background: #ffffff;
}

.moderator-qr-info {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.moderator-qr-info strong {
    color: #064894;
    font-size: 27px;
    font-weight: 700;
}

.moderator-qr-info span {
    color: #334155;
    font-size: 17px;
}

.moderator-qr-info small {
    margin-top: 8px;
    color: #64748b;
    font-size: 15px;
}
