*{
    box-sizing:border-box;
}

body{
    font-family:Segoe UI,system-ui,Arial;
    background:#f5f8ff;
    margin:0;
}

/* HEADER */
.header{
    background:#0b2c5d;
    color:white;
    padding:15px;
    text-align:center;
}

/* VOTER HEADER */
.voter-header{
    background:#0b2c5d;
    color:white;
    text-align:center;
    padding:18px 12px;
}

.voter-header p{
    margin:6px 0 10px;
    font-size:14px;
}

.vote-status{
    display:inline-block;
    padding:6px 15px;
    border-radius:20px;
    font-weight:bold;
    font-size:12px;
}

.vote-status.open{ background:#27ae60; }
.vote-status.closed{ background:#c0392b; }

/* DASHBOARD VOTER */
.container{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:15px;
    padding:15px;
}

.card{
    background:white;
    border:2px solid #0b2c5d;
    padding:15px;
    border-radius:10px;
    text-align:center;
}

.img-row img{
    width:65px;
    height:65px;
    border-radius:50%;
    margin:5px;
}

.btn-row{
    display:flex;
    gap:8px;
    justify-content:center;
    margin-top:10px;
}

.btn{
    padding:8px 14px;
    border-radius:6px;
    text-decoration:none;
    color:white;
    font-size:13px;
}

.detail{background:#999}
.vote{background:#0b2c5d}
.disabled{background:#aaa}

/* LOGIN */
.login-box{
    max-width:320px;
    margin:90px auto;
    background:white;
    padding:20px;
    border-radius:10px;
    border:2px solid #0b2c5d;
}

.login-box input,button{
    width:100%;
    padding:10px;
    margin:8px 0;
}

/* ADMIN LAYOUT */
.admin{
    display:flex;
}

.sidebar{
    width:220px;
    background:#1e3799;
    min-height:100vh;
    padding:15px;
    position:fixed;
    left:0;
    top:0;
}

.sidebar h3{
    color:white;
    text-align:center;
}

.sidebar a{
    display:block;
    color:white;
    padding:10px;
    margin:5px 0;
    border-radius:6px;
    text-decoration:none;
}

.sidebar a:hover{
    background:#4a69bd;
}

.content{
    margin-left:220px;
    padding:20px;
    width:calc(100% - 220px);
}

/* TABLE */
table{
    width:100%;
    border-collapse:collapse;
    font-size:13px;
}

/* DETAIL */
.detail-wrapper{
    display:flex;
    justify-content:center;
    padding:20px 10px;
}

.detail-card{
    width:100%;
    max-width:800px;
    background:white;
    padding:25px 20px;
    border-radius:12px;
    border:2px solid #0b2c5d;
    line-height:1.6;
}

/* THANKS */
.thanks-wrapper{
    display:flex;
    justify-content:center;
    align-items:center;
    height:100vh;
}

.thanks-card{
    background:white;
    border:2px solid #0b2c5d;
    border-radius:12px;
    padding:28px 32px;
    text-align:center;
}

/* ================= MOBILE MODE ================= */

@media (max-width: 768px){

.sidebar{
    position:relative;
    width:100%;
    min-height:auto;
}

.content{
    margin-left:0;
    width:100%;
}

.admin{
    flex-direction:column;
}

.container{
    grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
}

.img-row img{
    width:55px;
    height:55px;
}

.login-box{
    margin:50px 10px;
}

}