@import "https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap";:root{--color-primary:#0f59c1;--color-primary-variant:#38bdd3;--color-gray-0:#fff;--color-gray-100:#eee;--color-gray-200:#ccc;--color-gray-300:#bbb;--color-gray-400:#999;--color-gray-500:#777;--color-gray-600:#555;--color-gray-700:#333;--color-gray-800:#111;--color-gray-900:#000;--color-danger:#f64343;--color-success:#06a465;--radius-1:.4rem;--radius-2:.8rem;--radius-3:1.2rem;--radius-4:1.6rem;--radius-5:2rem;--container-w-lg:80%;--container-w-sm:94%;--transition:all .3s ease}*{box-sizing:border-box;border:none;margin:0;padding:0;text-decoration:none;list-style:none}.dark{--color-primary:#4091f7;--color-primary-variant:#6ee7f5;--color-gray-0:#fff;--color-gray-100:#1a1a1a;--color-gray-200:#242424;--color-gray-300:#2e2e2e;--color-gray-400:#444;--color-gray-500:#6b6b6b;--color-gray-600:#9a9a9a;--color-gray-700:#cfcfcf;--color-gray-800:#f1f1f1;--color-gray-900:#e8e8e8;--color-danger:#ff6b6b;--color-success:#2dc98e}body{background:var(--color-gray-100);color:var(--color-gray-700);font-family:Montserrat,sans-serif;font-size:.9rem;line-height:1.6}.container{width:var(--container-w-lg);margin-inline:auto}h1,h2,h3,h4,h5,h6{color:var(--color-gray-900);text-transform:uppercase;font-weight:800;line-height:1.1}h1{font-size:1.6rem}h2{font-size:1.3rem}h3{font-size:1.1rem}h4{font-size:.9rem}h5{font-size:.75rem}h6{font-size:.6rem}a{font-size:.8rem}img{object-fit:cover;width:100%;height:100%;display:block}button{cursor:pointer}.btn{background:var(--color-gray-100);width:fit-content;color:var(--color-gray-900);text-align:center;border-radius:var(--radius-1);transition:var(--transition);padding:1rem 2rem;font-weight:600}.btn.primary{background:var(--color-primary);color:var(--color-gray-0)}.btn.danger{background-color:var(--color-danger);color:var(--color-gray-0)}.btn.sm{padding:.5rem 1.2rem}.btn.full{width:100%}.btn:hover{background-color:var(--color-gray-900);color:var(--color-gray-0)}.dark .btn:hover{background-color:var(--color-gray-0);color:var(--color-gray-100)}.modal{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:2;background:#000000b3;place-items:center;width:100vw;height:100vh;display:grid;position:fixed;top:0;left:0}.modal__content{background:var(--color-gray-0);border-radius:var(--radius-5);width:35rem;overflow:hidden}.dark .modal__content{background:var(--color-gray-100);color:var(--color-gray-900)}.modal__header{background:var(--color-primary);justify-content:space-between;align-items:center;padding:2rem;display:flex}.modal h4{color:#fff}.modal__header button{color:#fff;background:0 0;font-size:1.8rem}.modal__content form{flex-direction:column;gap:1.5rem;margin-top:2rem;padding:2rem 2rem 3rem;display:flex}.modal__content form input{background:var(--color-gray-100);border-radius:var(--radius-1);width:100%;color:var(--color-gray-900);margin-top:.6rem;padding:.8rem 1rem}.dark .modal__content form input{background:var(--color-gray-300)}.loader{background:var(--color-gray-100);z-index:10;place-items:center;width:100vw;height:100vh;display:grid;position:fixed;top:0;left:0}.loader__spinner{border:.4rem solid var(--color-gray-300);border-top-color:var(--color-primary);border-radius:50%;width:4rem;height:4rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media screen and (width<=600px){.modal__content{width:var(--container-w-sm)}}nav{background:var(--color-primary);z-index:1;place-items:center;width:100%;height:3rem;display:grid;position:fixed;top:0;left:0}.nav__container *{color:var(--color-gray-0)}.nav__container{justify-content:space-between;align-items:center;display:flex}.nav__logo-container{justify-content:space-between;align-items:center;gap:.2rem;display:flex}.nav__logo-container img{object-fit:cover;width:2rem;height:2rem}.nav__links{align-items:center;gap:4rem;display:flex}.nav__logo{font-size:1.5rem;font-weight:700}.nav__toggle-btn{background:0 0;font-size:1.8rem;display:none}.nav__container a{transition:var(--transition)}.nav__container a:hover{color:var(--color-primary-variant)}.nav__container menu{align-items:center;gap:4rem;display:flex}.theme__toggle-btn{transition:var(--transition);background:0 0;font-size:1.8rem;display:flex}.theme__toggle-btn:hover{opacity:.75}@media screen and (width<=600px){.container{width:var(--container-w-sm)}nav{height:4rem}.nav__links{gap:3rem}.nav__toggle-btn{display:inline-block}.nav__container menu{flex-direction:column;gap:0;width:12rem;display:none;position:fixed;top:4rem;right:0}.nav__container menu.active{display:flex}.nav__container menu a{background:var(--color-gray-0);color:var(--color-gray-900);border-bottom:1px solid var(--color-gray-200);place-items:center;width:100%;height:4rem;display:grid;box-shadow:0 .2rem .4rem #0000001a}.dark .nav__container menu a{background:var(--color-gray-100);color:var(--color-gray-800);box-shadow:0 .2rem .4rem #0006}}.errorPage{background:var(--color-gray-0);place-items:center;width:100vw;height:100vh;display:grid}.errorPage__container{text-align:center;width:100vw}.errorPage__container h1{font-size:2rem}.register{place-items:center;height:100vh;display:grid}.register__container{background:var(--color-gray-0);border-radius:var(--radius-5);width:90%;max-width:35rem;padding:3rem}.register__container h2{color:var(--color-primary);margin-bottom:2rem}.register form{flex-direction:column;gap:1.5rem;display:flex}.register form input{background:var(--color-gray-100);border-radius:var(--radius-1);color:var(--color-gray-900);padding:.7rem}.register form p>a{color:var(--color-primary);font-weight:500}.form__error-message{background:var(--color-danger);color:var(--color-gray-0);border-radius:var(--radius-1);padding:.6rem 1.5rem}.dark .register__container{background:var(--color-gray-200);box-shadow:0 .4rem 1rem #0006}.dark .register form input{background:var(--color-gray-300);color:var(--color-gray-900)}.dark .register form input::placeholder{color:var(--color-gray-600)}@media screen and (width<=600px){.register__container{padding:3rem 1.5rem}}.results{margin:5rem 0;width:58rem;margin-inline:auto}.results__container{flex-direction:column;display:flex}.result{background:var(--color-gray-0);border-radius:var(--radius-4);flex-direction:column;margin-bottom:1.5rem;display:flex;overflow:hidden}.result__header{background:var(--color-gray-100);border:.5rem solid var(--color-gray-0);border-radius:1.5rem 1.5rem 0 0;justify-content:space-between;align-items:center;display:flex}.result__header-image{aspect-ratio:1;border-radius:50%;width:3rem;margin:1.5rem;overflow:hidden}.result h4{color:var(--color-gray-900);padding:1.5rem}.result__list{flex-direction:column;gap:1.5rem;padding:1rem 2rem 2rem;display:flex}.result__candidate{align-items:center;gap:2rem;display:flex}.result__candidate-image{aspect-ratio:1;border-radius:1rem;flex-shrink:0;height:3.5rem;overflow:hidden}.result__candidate-info{flex:1;min-width:0}.result__candidate-rating{justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.result__candidate-rating-loader{background:var(--color-gray-100);border-radius:.5rem;width:100%;height:.4rem;margin-top:.5rem;display:block;overflow:hidden}.result__candidate-rating-loader span{background:linear-gradient(90deg, var(--color-primary), var(--color-primary-variant));height:100%;display:block}.result__candidate-rating small{color:var(--color-gray-500);line-height:1}.dark .result{background:var(--color-gray-200)}.dark .result__header{background:var(--color-gray-300);border-color:var(--color-gray-200)}@media screen and (width<=600px){.results{width:100%}.result__list{padding:1.5rem 1rem}.result__candidate{flex-wrap:wrap;gap:1rem}.result__candidate-rating{width:100%}}.elections{margin:5rem 0}.elections__header{justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.5rem;display:flex}.elections__menu{flex-direction:column;gap:1rem;display:flex}.election{background:var(--color-gray-0);border-radius:var(--radius-3);border:.5rem solid var(--color-gray-0);transition:var(--transition);grid-template-columns:17rem auto;align-items:center;display:grid;overflow:hidden}.election__image{max-height:13rem}.election:hover{box-shadow:0 .8rem .8rem #0000001a}.election__info{padding:1rem 2rem}.election__info h4{color:var(--color-primary);margin-bottom:.7rem}.election__cta{gap:1.2rem;margin-top:1rem;display:flex}@media screen and (width<=600px){.election{grid-template-columns:1fr}.election__info{padding:2rem 1rem}.election__image{height:100%}}.electionDetails{margin:5rem 0}.electionDetails__image{height:15rem;margin:1.2rem 0 .8rem}.electionDetails__candidates{border-top:2px solid var(--color-gray-200);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:3rem;margin-top:2.5rem;padding-top:2.5rem;display:grid}.electionCandidate{background:var(--color-gray-0);border-radius:var(--radius-4);text-align:center;position:relative;overflow:hidden}.electionCandidate__image{height:14rem;overflow:hidden}.electionCandidate h5{margin:.5rem 0 .2rem}.electionCandidate>div:nth-child(2){padding:1.3rem}.electionCandidate__btn{background:var(--color-danger);color:var(--color-gray-0);border-radius:var(--radius-1);margin:1rem;padding:.5rem;font-size:1.1rem;display:flex;position:absolute;top:0;right:0}.electionCandidate__btn:hover{background:var(--color-gray-900)}.dark .electionCandidate{background:var(--color-gray-200)}.dark .electionCandidate__btn:hover{background:var(--color-gray-100)}.add__candidate-btn{background:var(--color-gray-100);border:2px solid var(--color-primary);border-radius:var(--radius-4);color:var(--color-primary);transition:var(--transition);place-items:center;min-height:15rem;font-size:5rem;display:grid;box-shadow:0 .8rem .8rem #0000001a}.dark .add__candidate-btn{background:var(--color-gray-200)}.voters{margin:6rem 0 3rem}.voters h2{text-align:center;margin-bottom:3rem}.voters__table{width:100%}.voters__table thead th{text-align:left;padding:.7rem 1.5rem}.voters__table tbody td{padding:.7rem 1.5rem}.voters__table tbody tr:nth-child(odd){background:var(--color-gray-0)}.dark .voters__table tbody tr:nth-child(odd){background:var(--color-gray-200)}@media screen and (width<=600px){.voters__table thead tr{flex-direction:column;display:flex}.voters__table tbody tr{flex-direction:column;width:100%;display:flex}}.candidates{margin:5rem 0}.candidates__header{text-align:center;flex-direction:column;align-items:center;width:60%;margin-inline:auto;display:flex}.candidates__header p{margin-bottom:3rem}.candidates__header p .btn.primary{justify-content:center}.candidates__container{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:3rem;display:grid}.candidate{background:var(--color-gray-0);text-align:center;border-radius:var(--radius-3);border:.5rem solid var(--color-gray-0);transition:var(--transition);padding-bottom:1.2rem;overflow:hidden;box-shadow:0 .5rem 1rem #0000001a}.candidate:hover{box-shadow:none;border-color:var(--color-gray-100)}.dark .candidate{background:var(--color-gray-200);border-color:var(--color-gray-200)}.candidate__image{aspect-ratio:1;margin-inline:auto;width:100%;margin-bottom:1.5rem;overflow:hidden}.candidate small{margin:.5rem 0 1rem;display:block}@media screen and (width<=600px){.candidates__header{width:var(--container-w-sm)}}.confirm__vote-content{text-align:center;border-radius:var(--radius-3)}.confirm__vote-content h5{color:var(--color-primary);margin:2rem 0}.confirm__vote-image{aspect-ratio:1;border-radius:var(--radius-3);margin-inline:auto;width:15rem;margin-bottom:2rem;overflow:hidden}.confirm__vote-content p{margin:.4rem 0 2.5rem;padding:0 2rem}.confirm__vote-cta{margin-inline:auto;align-items:center;gap:2rem;width:fit-content;margin-bottom:2rem;display:flex}.dark .confirm__vote-cta .btn:not(.primary){background:var(--color-gray-300)}.congrats{text-align:center;height:100vh;padding:8rem 0}.congrats p{margin:.5rem 0 1.2rem}
