/* Route IT - Urna Eletrônica v1.0.0 — Frontend */

.rit-urna-wrap{max-width:800px;margin:24px auto;padding:24px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 8px 24px rgba(15,23,42,.06);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
.rit-urna-front{text-align:center}.rit-urna-front .rit-urna-card{text-align:left}
.rit-urna-title{font-size:26px;font-weight:700;margin:0 0 14px;color:#0f172a;text-align:center}
.rit-urna-subtitle{font-size:18px;font-weight:600;color:#334155;margin:-8px 0 8px;text-align:center}
.rit-urna-desc{font-size:15px;color:#475569;margin:0 0 16px;text-align:center;line-height:1.6}
.rit-urna-front input,.rit-urna-front button{min-height:46px}
.rit-urna-front .rit-urna-btn{font-size:17px;padding:12px 24px}
.rit-urna-start{text-align:center!important;padding:28px}
.rit-urna-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:20px;margin:14px 0}
.rit-urna-field{margin-bottom: 25px;}
.rit-urna-field label{display:block;font-weight:600;margin-bottom:6px;color:#334155;font-size:14px}
.rit-urna-field input,.rit-urna-field select,.rit-urna-field textarea{width:100%;padding:12px 14px;border:2px solid #e2e8f0;border-radius:10px;background:#fff;font-size:16px;box-sizing:border-box;transition:border-color .2s}
.rit-urna-field input:focus{border-color:#2563eb;outline:0;box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.rit-urna-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#2563eb;color:#fff!important;border:0;border-radius:10px;padding:12px 22px;text-decoration:none;font-weight:700;font-size:16px;cursor:pointer;transition:all .15s;box-shadow:0 2px 8px rgba(37,99,235,.2)}
.rit-urna-btn:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 12px rgba(37,99,235,.3)}
.rit-urna-btn.success{background:#16a34a;box-shadow:0 2px 8px rgba(22,163,74,.2)}
.rit-urna-btn.success:hover{background:#15803d}
.rit-candidate{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:2px solid #e2e8f0;border-radius:12px;background:#fff;margin:10px 0;cursor:pointer;transition:all .2s}
.rit-candidate:hover{border-color:#2563eb;background:#eff6ff}
.rit-candidate strong{font-size:16px;color:#0f172a}
.rit-candidate-left{display:flex;align-items:center;gap:14px}
.rit-candidate-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid #e2e8f0;background:#f1f5f9}
.rit-candidate-avatar.placeholder{display:inline-flex;align-items:center;justify-content:center;font-weight:800;color:#64748b;font-size:24px}
.rit-urna-alert{padding:14px 18px;border-radius:10px;margin:12px 0;background:#eff6ff;color:#1e3a8a;border:1px solid #bfdbfe;font-size:14px;line-height:1.6;text-align:center}
.rit-urna-success{background:#f0fdf4;color:#166534;border-color:#bbf7d0}
.rit-urna-error{background:#fef2f2;color:#991b1b;border-color:#fecaca}
.rit-urna-countdown{font-size:22px;font-weight:800;text-align:center;padding:18px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin:12px 0}

@media(max-width:768px){.rit-urna-wrap{margin:16px auto;padding:16px}.rit-urna-title{font-size:22px}.rit-urna-btn{width:100%;justify-content:center}}
@media print{body{margin:0!important;padding:0!important}.rit-urna-wrap{max-width:100%;margin:0!important;padding:10mm!important;box-shadow:none;border:0}.rit-urna-btn,.rit-urna-countdown,.no-print{display:none!important}}

/* Layout opcional dos candidatos em cards */
.rit-candidates-list{display:block}
.rit-candidates-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:14px}
.rit-candidates-cards .rit-candidate{display:block;position:relative;min-height:260px;padding:0;overflow:hidden;text-align:left;gap:0px;}
.rit-candidates-cards .rit-candidate-left{display:block;width:100%;height:100%}
.rit-candidates-cards .rit-candidate-avatar{width:100%;height:40%;min-height:120px;border:0;border-radius:0;object-fit:cover;background:#e2e8f0;display:flex;align-items:center;justify-content:center;font-size:48px}
.rit-candidates-cards .rit-candidate-avatar.placeholder{height:auto;min-height:0;width:auto;border:0;border-radius:0;background:transparent;padding:18px 18px 0;display:block;font-size:0}
.rit-candidates-cards .rit-candidate-avatar.placeholder::after{content:''}
.rit-candidates-cards .rit-candidate-left>span:not(.rit-candidate-avatar){display:block;padding:18px 42px 18px 18px}
.rit-candidates-cards .rit-candidate input[type=radio]{position:absolute;right:16px;bottom:16px}
.rit-candidates-cards .rit-candidate strong{font-size:18px;line-height:1.3}
@media(max-width:768px){.rit-candidates-cards{grid-template-columns:1fr}.rit-candidates-cards .rit-candidate{min-height:auto}.rit-candidates-cards .rit-candidate-avatar{height:160px}}


/* Ajuste v1.3.1 - layout de candidatos em cards no front
   O formulário fica dentro de .rit-candidates, então o grid precisa ser aplicado ao form. */
.rit-candidates-cards{
    display:block;
    margin-top:14px;
}
.rit-candidates-cards form{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
    gap:16px;
    align-items:stretch;
}
.rit-candidates-cards .rit-candidate{
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    position:relative;
    min-height:210px;
    height:100%;
    padding:0;
    overflow:hidden;
    text-align:left;
    margin:0;
    border:1px solid #d7e2f1;
    border-radius:16px;
    background:#fff;
    box-shadow:0 8px 20px rgba(15,23,42,.06);
}
.rit-candidates-cards .rit-candidate:hover,
.rit-candidates-cards .rit-candidate:has(input[type=radio]:checked){
    border-color:#2563eb;
    background:#eff6ff;
}
.rit-candidates-cards .rit-candidate-left{
    display:flex;
    flex-direction:column;
    gap:0;
    width:100%;
    min-height:100%;
}
.rit-candidates-cards .rit-candidate-avatar{
    display:block;
    width:100%;
    height:40%;
    min-height:105px;
    border:0;
    border-radius:0;
    object-fit:cover;
    background:#e8eef7;
}
.rit-candidates-cards .rit-candidate-avatar.placeholder{
    display:none;
}
.rit-candidates-cards .rit-candidate-left>span:not(.rit-candidate-avatar){
    display:block;
    padding:22px 46px 22px 18px;
    min-height:120px;
}
.rit-candidates-cards .rit-candidate strong{
    display:block;
    font-size:17px;
    line-height:1.3;
    color:#071632;
    margin-bottom:8px;
}
.rit-candidates-cards .rit-candidate input[type=radio]{
    position:absolute;
    right:16px;
    bottom:16px;
    width:18px;
    height:18px;
}
.rit-candidates-cards .rit-candidate:last-of-type{
    min-height:150px;
}
.rit-candidates-cards .rit-candidate:last-of-type .rit-candidate-left>span,
.rit-candidates-cards .rit-candidate:last-of-type>span:not(.rit-candidate-left){
    padding:28px 46px 28px 18px;
}
.rit-candidates-cards p{
    grid-column:1/-1;
    text-align:center;
    margin:8px 0 0;
}
.rit-candidates-cards .rit-urna-btn.success{
    min-width:190px;
}
@media(max-width:900px){
    .rit-candidates-cards form{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));}
}
@media(max-width:640px){
    .rit-candidates-cards form{grid-template-columns:1fr;}
    .rit-candidates-cards .rit-candidate{min-height:auto;}
    .rit-candidates-cards .rit-candidate-avatar{height:150px;}
}


/* v1.3.2 - Cards compactos, foto lateral inteira e largura full no layout cards */
.rit-urna-wrap.rit-urna-layout-cards{
    max-width:none;
    width:calc(100% - 48px);
    margin:24px auto;
    box-sizing:border-box;
}
.rit-urna-wrap.rit-urna-layout-list{
    max-width:800px;
}
.rit-candidates-cards form{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(255px,1fr));
    gap:14px;
    align-items:stretch;
}
.rit-candidates-cards .rit-candidate{
    display:grid;
    grid-template-columns:42% 1fr;
    grid-template-rows:34px 1fr;
    min-height:150px;
    height:100%;
    padding:0;
    overflow:hidden;
    text-align:left;
    margin:0;
    border:1px solid #d7e2f1;
    border-radius:14px;
    background:#fff;
    box-shadow:0 6px 16px rgba(15,23,42,.05);
}
.rit-candidates-cards .rit-candidate:hover,
.rit-candidates-cards .rit-candidate:has(input[type=radio]:checked){
    border-color:#2563eb;
    background:#eff6ff;
}
.rit-candidates-cards .rit-card-number{
    grid-column:1/-1;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:34px;
    font-size:13px;
    font-weight:800;
    color:#2563eb;
    letter-spacing:.03em;
    border-bottom:1px solid #edf2f7;
    background:#f8fbff;
}
.rit-candidates-cards .rit-candidate-left{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:42% 1fr;
    min-height:116px;
    width:100%;
    height:100%;
    gap:0;
}
.rit-candidates-cards .rit-candidate-avatar{
    width:100%;
    height:100%;
    min-height:116px;
    border:0;
    border-radius:0;
    object-fit:cover;
    background:#e8eef7;
    display:block;
}
.rit-candidates-cards .rit-candidate-info{
    display:flex!important;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    padding:14px 42px 14px 14px!important;
    min-height:116px;
    box-sizing:border-box;
}
.rit-candidates-cards .rit-candidate-info strong{
    display:block;
    font-size:16px;
    line-height:1.25;
    color:#071632;
    margin:0 0 6px;
}
.rit-candidates-cards .rit-candidate-info em{
    font-style:normal;
    font-size:14px;
    color:#334155;
    line-height:1.35;
}
.rit-candidates-cards .rit-candidate.no-photo .rit-candidate-left{
    grid-template-columns:1fr;
}
.rit-candidates-cards .rit-candidate.no-photo .rit-candidate-info{
    align-items:center;
    text-align:center;
    padding:16px 42px 16px 16px!important;
}
.rit-candidates-cards .rit-candidate input[type=radio]{
    position:absolute;
    right:14px;
    bottom:14px;
    width:18px;
    height:18px;
}
.rit-candidates-cards p{
    grid-column:1/-1;
    text-align:center;
    margin:10px 0 0;
}
.rit-candidates-list .rit-card-number{
    display:inline-flex;
    margin-right:4px;
    font-weight:700;
}
.rit-candidates-list .rit-card-number::after{
    content:' -';
}
.rit-candidates-list .rit-candidate-info em{
    font-style:normal;
}
@media(max-width:900px){
    .rit-urna-wrap.rit-urna-layout-cards{width:calc(100% - 24px);padding:16px;}
    .rit-candidates-cards form{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));}
}
@media(max-width:640px){
    .rit-candidates-cards form{grid-template-columns:1fr;}
    .rit-candidates-cards .rit-candidate{min-height:140px;}
}
