
*{box-sizing:border-box}
:root{
    --bg:#f4f6f8;
    --card:#ffffff;
    --text:#18212b;
    --muted:#66727f;
    --line:#dfe5ea;
    --accent:#155eef;
    --accent-dark:#0f49bd;
}
body{
    margin:0;
    font-family:Arial,Helvetica,sans-serif;
    background:var(--bg);
    color:var(--text);
}
.page{
    width:min(860px,100%);
    margin:0 auto;
    padding:28px 14px 60px;
}
.card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:18px;
    padding:clamp(20px,4vw,40px);
    box-shadow:0 8px 26px rgba(0,0,0,.05);
}
.eyebrow{
    font-size:.82rem;
    font-weight:700;
    letter-spacing:.09em;
    color:var(--accent);
}
h1{
    font-size:clamp(1.8rem,5vw,2.6rem);
    line-height:1.08;
    margin:.35rem 0 1rem;
}
.intro{
    color:var(--muted);
    line-height:1.6;
    font-size:1.03rem;
}
fieldset{
    border:0;
    margin:30px 0;
    padding:0;
}
legend{
    font-weight:700;
    font-size:1.08rem;
    margin-bottom:13px;
}
select{
    width:100%;
    font:inherit;
    padding:14px;
    border:1px solid #cfd7df;
    border-radius:10px;
    background:#fff;
}
.grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.option,.candidate{
    display:flex;
    align-items:center;
    gap:11px;
    border:1px solid var(--line);
    border-radius:11px;
    padding:13px 14px;
    cursor:pointer;
    background:#fff;
}
.candidate-list{
    display:grid;
    gap:10px;
}
input[type=radio]{
    width:19px;
    height:19px;
    margin:0;
}
.option:has(input:checked),
.candidate:has(input:checked){
    border-color:var(--accent);
    background:#f2f6ff;
}
button{
    width:100%;
    border:0;
    border-radius:11px;
    padding:16px 18px;
    font-weight:700;
    font-size:1rem;
    color:#fff;
    background:var(--accent);
    cursor:pointer;
}
button:hover{background:var(--accent-dark)}
.privacy{
    color:var(--muted);
    font-size:.9rem;
    line-height:1.5;
}
.notice{
    margin-top:25px;
    padding:18px;
    border:1px solid #d6dde5;
    border-radius:12px;
    background:#f8fafb;
    display:grid;
    gap:5px;
}
.center{text-align:center}
.success-icon{
    width:72px;height:72px;border-radius:50%;
    display:grid;place-items:center;
    margin:5px auto 20px;
    background:#e9f7ee;
    color:#20884a;
    font-size:2.4rem;
    font-weight:700;
}
@media(max-width:620px){
    .page{padding:10px 8px 35px}
    .card{border-radius:12px;padding:20px 15px}
    .grid{grid-template-columns:1fr}
    fieldset{margin:26px 0}
}
