*{box-sizing:border-box}

:root{
    --teal:#09607B;
    --teal-deep:#075269;
    --teal-dark:#043F51;
    --lime:#C3F700;
    --lime-soft:#D6FF43;
    --white:#FFFFFF;
    --muted:rgba(255,255,255,.74);
    --border:rgba(255,255,255,.24);
    --danger:#ff747b;
}

html,body{margin:0;min-height:100%}
body{
    min-height:100vh;
    font-family:Arial,Helvetica,sans-serif;
    color:var(--white);
    background:var(--teal);
}

[hidden]{display:none!important}

/* Intro / instructions screen */
.intro-screen{
    position:fixed;
    inset:0;
    z-index:90;
    display:grid;
    place-items:center;
    padding:30px;
    overflow:auto;
    background:var(--teal);
    transition:opacity .28s ease,transform .28s ease;
}

.intro-screen.leaving{
    opacity:0;
    transform:scale(1.008);
}

.intro-panel{
    position:relative;
    width:min(880px,100%);
    padding:clamp(28px,4vw,48px);
    border:2px solid var(--lime);
    border-radius:28px;
    background:var(--teal-deep);
    box-shadow:0 26px 70px rgba(0,0,0,.20);
    text-align:center;
}


.propeller-logo-wrap{
    display:flex;
    justify-content:center;
    align-items:center;
    margin:0 auto 14px;
}

.propeller-logo{
    display:block;
    width:min(560px,88%);
    max-height:130px;
    object-fit:contain;
}

.intro-accent{
    width:76px;
    height:6px;
    margin:0 auto 22px;
    border-radius:999px;
    background:var(--lime);
}

.intro-panel h1{
    max-width:780px;
    margin:0 auto 22px;
    color:var(--lime);
    font-size:clamp(25px,3.2vw,38px);
    line-height:1.12;
}

.intro-panel p{
    max-width:760px;
    margin:0 auto;
    color:var(--white);
    font-size:clamp(17px,2vw,23px);
    line-height:1.5;
}

.intro-panel p strong{
    color:var(--lime);
}

.ready-text{
    margin-top:28px;
    color:var(--lime);
    font-size:clamp(22px,2.8vw,32px);
    font-weight:900;
}

.intro-next-btn{
    margin-top:26px;
    min-width:200px;
    padding:15px 26px;
    border:2px solid var(--lime);
    border-radius:14px;
    background:var(--lime);
    color:var(--teal-dark);
    font-size:18px;
    font-weight:800;
    cursor:pointer;
    box-shadow:0 12px 30px rgba(0,0,0,.18);
    transition:transform .16s ease,background .16s ease;
}

.intro-next-btn:hover{
    transform:translateY(-2px);
    background:var(--lime-soft);
}

.intro-next-btn span{
    margin-left:8px;
    font-size:21px;
}

.screen-enter{
    animation:surveyIn .35s ease both;
}

/* Questionnaire */
.survey-shell{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:40px 22px;
    background:var(--teal);
}

.survey-enter{animation:surveyIn .35s ease both}

.card{
    width:min(900px,100%);
    padding:clamp(28px,5vw,56px);
    background:var(--teal-deep);
    border:2px solid var(--lime);
    border-radius:28px;
    box-shadow:0 24px 65px rgba(0,0,0,.20);
}

.login-card{width:min(480px,100%)}

.eyebrow{
    color:var(--lime);
    font-size:13px;
    font-weight:800;
    letter-spacing:.16em;
    text-transform:uppercase;
    margin-bottom:10px;
}

h1{
    margin:0 0 14px;
    color:var(--white);
    font-size:clamp(34px,6vw,56px);
    line-height:1.03;
}

h2{
    margin:8px 0 22px;
    color:var(--white);
    font-size:clamp(25px,4vw,37px);
    line-height:1.22;
}

.intro,.muted,.hint{
    color:var(--muted);
    line-height:1.65;
}

.intro strong{color:var(--lime)}
.hint{margin-top:-8px;margin-bottom:20px;font-size:14px}

.progress-wrap{margin:34px 0 42px}

.progress-meta{
    display:flex;
    justify-content:space-between;
    color:rgba(255,255,255,.78);
    font-size:14px;
    margin-bottom:10px;
}

.progress{
    height:9px;
    background:rgba(255,255,255,.16);
    border-radius:999px;
    overflow:hidden;
}

.progress>div{
    height:100%;
    width:0;
    background:var(--lime);
    border-radius:999px;
    transition:width .3s ease;
}

.question-step{display:none}
.question-step.active{display:block;animation:fade .24s ease}

.question-number{
    color:var(--lime);
    font-weight:800;
    font-size:15px;
}

.choices{
    display:grid;
    gap:13px;
}

.choice{
    position:relative;
    display:flex;
    align-items:center;
    gap:15px;
    min-height:64px;
    padding:15px 18px;
    border:2px solid rgba(255,255,255,.30);
    border-radius:16px;
    background:rgba(255,255,255,.055);
    cursor:pointer;
    transition:background .17s ease,border-color .17s ease,transform .17s ease;
}

.choice:hover{
    border-color:var(--lime);
    background:rgba(195,247,0,.08);
    transform:translateY(-1px);
}

.choice input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.choice-mark{
    width:24px;
    height:24px;
    flex:0 0 24px;
    border:2px solid rgba(255,255,255,.68);
    border-radius:50%;
    background:transparent;
}

.question-step[data-type="multiple"] .choice-mark{border-radius:6px}

.choice input:checked + .choice-mark{
    border-color:var(--lime);
    background:var(--lime);
    box-shadow:inset 0 0 0 5px var(--teal-deep);
}

.choice:has(input:checked){
    border-color:var(--lime);
    background:rgba(195,247,0,.12);
}

.choice-text{
    color:var(--white);
    font-size:17px;
    line-height:1.35;
}

.invalid-step .choices{
    outline:2px solid var(--danger);
    outline-offset:6px;
    border-radius:14px;
}

.actions{
    display:flex;
    justify-content:space-between;
    gap:12px;
    margin-top:32px;
}

.btn{
    appearance:none;
    border:2px solid var(--lime);
    border-radius:14px;
    padding:14px 24px;
    text-decoration:none;
    cursor:pointer;
    font-weight:800;
    font-size:15px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    transition:transform .15s ease,background .15s ease;
}

.btn:hover{transform:translateY(-1px)}

.btn.primary{
    background:var(--lime);
    color:var(--teal-dark);
}

.btn.primary:hover{background:var(--lime-soft)}

.btn.secondary{
    background:transparent;
    color:var(--white);
}

.btn.secondary:hover{background:rgba(195,247,0,.10)}

.btn.danger{
    background:transparent;
    color:#ffe0e1;
    border-color:#ff858b;
}

.btn.small{padding:10px 14px;font-size:13px}
.btn.full{width:100%;margin-top:18px}

input[type="password"]{
    width:100%;
    padding:17px 18px;
    border:2px solid rgba(255,255,255,.30);
    border-radius:16px;
    outline:none;
    background:rgba(255,255,255,.07);
    color:#fff;
    font-size:18px;
}

input[type="password"]:focus{border-color:var(--lime)}

label[for="password"]{
    display:block;
    margin:20px 0 8px;
    color:var(--muted);
}

.message{
    margin-top:22px;
    padding:16px 18px;
    border-radius:14px;
}

.message.success{
    background:rgba(195,247,0,.11);
    border:1px solid var(--lime);
    color:var(--white);
}

.message.error{
    background:rgba(255,116,123,.13);
    border:1px solid rgba(255,116,123,.75);
    color:#ffe2e4;
}

/* Admin uses the same visual identity */
.admin-topbar{
    position:sticky;
    top:0;
    z-index:10;
    padding:16px clamp(20px,4vw,52px);
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    background:var(--teal-dark);
    border-bottom:2px solid var(--lime);
}

.admin-topbar>div:first-child{
    display:flex;
    flex-direction:column;
    gap:4px;
}

.admin-topbar span{
    color:var(--muted);
    font-size:13px;
}

.top-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}

.admin-shell{
    width:min(1200px,calc(100% - 36px));
    margin:34px auto 70px;
}

.summary-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    margin-bottom:22px;
}

.metric,.result-card{
    background:var(--teal-deep);
    border:1px solid rgba(255,255,255,.18);
    border-top:4px solid var(--lime);
    border-radius:20px;
    box-shadow:0 14px 40px rgba(0,0,0,.13);
}

.metric{padding:24px}

.metric span{
    display:block;
    color:var(--muted);
    margin-bottom:8px;
}

.metric strong{
    color:var(--lime);
    font-size:42px;
}

.result-card{
    padding:26px;
    margin-bottom:22px;
}

.result-card h2{font-size:26px}

.table-wrap{
    overflow-x:auto;
    margin-top:18px;
}

table{
    width:100%;
    border-collapse:collapse;
}

th,td{
    padding:14px 12px;
    border-bottom:1px solid rgba(255,255,255,.14);
    text-align:left;
}

th{
    color:var(--lime);
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.votes{
    color:var(--lime);
    font-weight:900;
    font-size:18px;
}

@keyframes fade{
    from{opacity:0;transform:translateY(7px)}
    to{opacity:1;transform:none}
}

@keyframes surveyIn{
    from{opacity:0}
    to{opacity:1}
}



.btn.reset{
    background:#ffb84d;
    color:#3f2b00;
    border-color:#ffb84d;
}

.btn.reset:hover{
    background:#ffc86d;
}

.reset-form{
    margin:0;
    display:inline-flex;
}

.admin-message{
    margin:0 0 22px;
}

.summary-grid-three{
    grid-template-columns:repeat(3,minmax(0,1fr));
}

@media(max-width:760px){

    .intro-screen{
        padding:16px;
    }

    .intro-panel{
        padding:26px 18px;
        border-radius:20px;
    }

    .propeller-logo{
        width:min(420px,96%);
        max-height:96px;
    }

    .desktop-break{
        display:none;
    }

    .intro-next-btn{
        width:100%;
    }

    .survey-shell{padding:18px 14px}

    .card{
        border-radius:20px;
        padding:26px 20px;
    }

    .admin-topbar{
        align-items:flex-start;
        flex-direction:column;
    }

    .summary-grid,.summary-grid-three{grid-template-columns:1fr}

    .actions{flex-direction:column-reverse}
    .actions .btn{width:100%}
}

