﻿/* v37.10 Premium Election UI */

.v37100-titlebar{
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 gap:18px;
 flex-wrap:wrap;
 margin-bottom:18px
}
.v37100-titlebar h1{margin:0 0 5px;font-size:27px}
.v37100-titlebar p{margin:0;color:#64748b}

.v37100-status{
 display:inline-block;padding:5px 10px;border-radius:999px;
 font-weight:700;font-size:12px
}
.v37100-status.open{background:#dcfce7;color:#166534}
.v37100-status.closed{background:#fee2e2;color:#991b1b}
.v37100-status.draft{background:#fef3c7;color:#92400e}

.candidate-grid-v37090{
 display:grid;
 grid-template-columns:repeat(auto-fit,minmax(235px,1fr));
 gap:20px;margin-top:18px
}

.candidate-card-v37090{
 position:relative;
 border:2px solid #e2e8f0;
 border-radius:20px;
 padding:18px;
 text-align:center;
 background:#fff;
 box-shadow:0 8px 24px rgba(15,23,42,.08);
 transition:.18s ease;
 overflow:hidden
}

.candidate-card-v37090:hover{
 transform:translateY(-2px);
 box-shadow:0 14px 30px rgba(15,23,42,.12)
}

.v37100-photo-frame{
 width:190px;
 height:220px;
 margin:0 auto 14px;
 padding:5px;
 border-radius:18px;
 background:linear-gradient(145deg,#0f172a,#2563eb);
 box-shadow:0 8px 20px rgba(15,23,42,.22)
}

.v37100-photo-frame img,
.v37100-photo-frame .candidate-photo-empty-v37090{
 width:100%;
 height:100%;
 object-fit:cover;
 border-radius:13px;
 background:#eef2f7;
 display:flex;
 align-items:center;
 justify-content:center;
 font-size:65px
}

.candidate-card-v37090 h3{
 font-size:19px;margin:8px 0 4px
}
.candidate-card-v37090 p{margin:4px 0}

.v37100-manifesto{
 font-size:13px;
 color:#475569;
 line-height:1.45;
 margin:10px 0
}

.ballot-choice-v37090{
 cursor:pointer;
 padding-top:22px
}

.ballot-choice-v37090 input{
 position:absolute;
 top:14px;left:14px;
 width:25px;height:25px;
 accent-color:#16a34a
}

.ballot-choice-v37090:has(input:checked){
 border-color:#16a34a;
 outline:4px solid rgba(22,163,74,.16);
 background:#f0fdf4
}

.v37100-select-label{
 margin:14px -18px -18px;
 padding:10px;
 background:#f1f5f9;
 font-weight:700;
 color:#475569
}

.ballot-choice-v37090:has(input:checked) .v37100-select-label{
 background:#16a34a;color:#fff
}

.v37100-referendum-note{
 background:#eff6ff;
 border-left:5px solid #2563eb;
 padding:10px 14px;
 border-radius:8px;
 margin:10px 0
}

.v37100-referendum-result{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:18px;
 max-width:600px
}
.v37100-referendum-result>div{
 padding:20px;border:1px solid #e2e8f0;
 border-radius:14px;text-align:center
}
.v37100-referendum-result strong{
 display:block;font-size:32px;margin:6px
}

.v37100-modal{
 position:fixed;inset:0;z-index:99999;
 background:rgba(15,23,42,.68);
 display:flex;align-items:center;justify-content:center;
 padding:20px
}

.v37100-modal-card{
 width:min(720px,96vw);
 max-height:92vh;
 overflow:auto;
 background:#fff;
 border-radius:20px;
 box-shadow:0 30px 80px rgba(0,0,0,.3)
}

.v37100-modal-head{
 display:flex;align-items:center;
 justify-content:space-between;
 padding:18px 22px;
 border-bottom:1px solid #e2e8f0
}

.v37100-modal-head h2{margin:0}
.v37100-x{
 border:0;background:#f1f5f9;
 width:38px;height:38px;border-radius:50%;
 font-size:24px;cursor:pointer
}

.v37100-modal-body{padding:22px}
.v37100-modal-actions{
 padding:15px 22px;
 border-top:1px solid #e2e8f0;
 display:flex;justify-content:flex-end;gap:10px
}

.v37100-form{display:grid;gap:14px}
.v37100-form label{
 display:grid;gap:6px;font-weight:600
}
.v37100-form input,
.v37100-form select,
.v37100-form textarea{
 width:100%;box-sizing:border-box;
 padding:11px 12px;
 border:1px solid #cbd5e1;
 border-radius:9px
}

.v37100-check{
 display:flex!important;
 grid-template-columns:auto 1fr!important;
 align-items:center;gap:9px!important
}
.v37100-check input{width:20px!important;height:20px}

.v37100-warning{
 background:#fff7ed;
 border:1px solid #fdba74;
 border-left:5px solid #f97316;
 padding:12px 14px;
 border-radius:10px;
 margin:8px 0
}

.v37100-table-wrap{overflow:auto;max-height:55vh}
.v37100-table{
 width:100%;border-collapse:collapse
}
.v37100-table th,.v37100-table td{
 border:1px solid #dbe2ea;
 padding:9px;text-align:left
}
.v37100-table th{
 background:#f1f5f9;
 position:sticky;top:0
}

.v37100-kiosk-shell{
 max-width:760px;margin:25px auto;
 background:#f8fafc;
 border-radius:26px;
 overflow:hidden;
 box-shadow:0 20px 60px rgba(15,23,42,.15)
}

.v37100-kiosk-header{
 padding:32px;
 text-align:center;
 color:white;
 background:linear-gradient(135deg,#0f172a,#1d4ed8)
}

.v37100-kiosk-header.teacher{
 background:linear-gradient(135deg,#312e81,#7c3aed)
}

.v37100-ballot-icon{font-size:55px}
.v37100-kiosk-header h1{
 margin:8px 0 3px;font-size:30px
}
.v37100-kiosk-header p{margin:0;opacity:.85}

.v37100-kiosk-card{padding:30px}
.v37100-login-form{display:grid;gap:16px}
.v37100-login-form label{
 display:grid;gap:7px;font-weight:700
}
.v37100-login-form input,
.v37100-login-form select{
 font-size:17px;padding:13px;
 border:1px solid #cbd5e1;
 border-radius:10px
}

.v37100-login-button{
 min-height:52px;font-size:17px!important
}

.v37100-kiosk-switch{
 text-align:center;margin-top:20px;
 border-top:1px solid #e2e8f0;padding-top:18px
}
.v37100-error{color:#b91c1c;font-weight:700;margin-top:12px}
.v37100-empty{text-align:center;padding:30px;color:#64748b}

.v37100-ballot-top{
 position:sticky;
 top:0;
 z-index:100;
 display:grid;
 grid-template-columns:1fr 1fr 180px;
 gap:15px;
 align-items:center;
 padding:14px 20px;
 background:#0f172a;
 color:#fff;
 border-radius:0 0 18px 18px;
 box-shadow:0 8px 20px rgba(0,0,0,.18);
 margin-bottom:20px
}

.v37100-ballot-top small{
 display:block;color:#cbd5e1;font-size:10px;
 letter-spacing:1px
}
.v37100-ballot-top strong{font-size:17px}
.v37100-ballot-title{text-align:center}

.v37100-clock{
 text-align:center;
 background:#1e293b;
 border-radius:12px;
 padding:8px
}
.v37100-clock strong{
 display:block;font-size:27px;
 font-variant-numeric:tabular-nums
}
.v37100-clock strong.danger{
 color:#fca5a5;
 animation:v37100pulse .8s infinite alternate
}

@keyframes v37100pulse{
 from{transform:scale(1)}
 to{transform:scale(1.08)}
}

.v37100-position{
 position:relative;
 padding-top:28px!important
}

.v37100-position-number{
 position:absolute;left:18px;top:-15px;
 width:38px;height:38px;
 border-radius:50%;
 background:#1d4ed8;color:#fff;
 display:flex;align-items:center;justify-content:center;
 font-weight:800
}

.v37100-single-candidate{
 max-width:500px;margin:auto;text-align:center
}

.v37100-referendum-instruction{
 text-align:center;color:#64748b
}

.v37100-yesno{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:16px;margin-top:20px
}

.v37100-yesno label{
 position:relative;cursor:pointer
}
.v37100-yesno input{
 position:absolute;opacity:0
}
.v37100-yesno span{
 display:block;padding:17px;
 border:3px solid #cbd5e1;
 border-radius:14px;
 font-size:20px;font-weight:800
}
.v37100-yes input:checked+span{
 border-color:#16a34a;background:#dcfce7;color:#166534
}
.v37100-no input:checked+span{
 border-color:#dc2626;background:#fee2e2;color:#991b1b
}

.v37100-submit-area{
 text-align:center;
 padding:25px 10px 45px
}
.vote-submit-v37090{
 font-size:19px!important;
 padding:15px 30px!important
}

.v37100-review>div{
 display:flex;justify-content:space-between;
 gap:20px;
 border-bottom:1px solid #e2e8f0;
 padding:12px 0
}
.v37100-review span{color:#64748b}
.v37100-review strong{text-align:right}

.vote-success-v37090{
 max-width:650px;
 margin:40px auto;
 text-align:center;
 padding:50px!important
}
.v37100-success-icon{
 width:90px;height:90px;
 border-radius:50%;
 background:#dcfce7;
 color:#16a34a;
 display:flex;align-items:center;justify-content:center;
 font-size:52px;
 margin:0 auto 20px
}
.vote-success-v37090 h1{font-size:31px}
.v37100-reset-message{color:#64748b}

.result-row-v37090{
 display:grid;
 grid-template-columns:70px 1fr auto;
 gap:14px;
 align-items:center;
 padding:13px 0;
 border-bottom:1px solid #e2e8f0
}
.result-row-v37090 img,
.v37100-result-avatar{
 width:64px;height:70px;
 object-fit:cover;border-radius:10px;
 background:#eef2f7;
 display:flex;align-items:center;justify-content:center
}
.result-row-v37090 small{display:block}
.result-bar-v37090{
 height:11px;background:#e2e8f0;
 border-radius:9px;overflow:hidden;margin-top:7px
}
.result-bar-v37090 i{
 display:block;height:100%;
 background:linear-gradient(90deg,#2563eb,#16a34a)
}

@media(max-width:760px){
 .candidate-grid-v37090{
  grid-template-columns:1fr 1fr
 }
 .v37100-photo-frame{
  width:145px;height:175px
 }
 .v37100-ballot-top{
  grid-template-columns:1fr 120px
 }
 .v37100-ballot-title{display:none}
}

@media(max-width:520px){
 .candidate-grid-v37090{grid-template-columns:1fr}
 .v37100-photo-frame{
  width:180px;height:210px
 }
 .v37100-yesno{grid-template-columns:1fr}
}
