body,html{height:100%;margin:0;overflow-x:hidden;padding:0;width:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74d3c;--toastify-color-transparent:#ffffffb3;--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-container-width:fit-content;--toastify-toast-width:320px;--toastify-toast-offset:16px;--toastify-toast-top:max(var(--toastify-toast-offset),env(safe-area-inset-top));--toastify-toast-right:max(var(--toastify-toast-offset),env(safe-area-inset-right));--toastify-toast-left:max(var(--toastify-toast-offset),env(safe-area-inset-left));--toastify-toast-bottom:max(var(--toastify-toast-offset),env(safe-area-inset-bottom));--toastify-toast-background:#fff;--toastify-toast-padding:14px;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-toast-bd-radius:6px;--toastify-toast-shadow:0px 4px 12px #0000001a;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error);--toastify-color-progress-bgo:0.2}.Toastify__toast-container{box-sizing:border-box;color:#fff;display:flex;flex-direction:column;position:fixed;-webkit-transform:translateZ(9999);-webkit-transform:translateZ(var(--toastify-z-index));width:fit-content;width:var(--toastify-container-width);z-index:9999;z-index:var(--toastify-z-index)}.Toastify__toast-container--top-left{left:max(16px,env(safe-area-inset-left));left:var(--toastify-toast-left);top:max(16px,env(safe-area-inset-top));top:var(--toastify-toast-top)}.Toastify__toast-container--top-center{align-items:center;left:50%;top:max(16px,env(safe-area-inset-top));top:var(--toastify-toast-top);transform:translateX(-50%)}.Toastify__toast-container--top-right{align-items:end;right:max(16px,env(safe-area-inset-right));right:var(--toastify-toast-right);top:max(16px,env(safe-area-inset-top));top:var(--toastify-toast-top)}.Toastify__toast-container--bottom-left{bottom:max(16px,env(safe-area-inset-bottom));bottom:var(--toastify-toast-bottom);left:max(16px,env(safe-area-inset-left));left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{align-items:center;bottom:max(16px,env(safe-area-inset-bottom));bottom:var(--toastify-toast-bottom);left:50%;transform:translateX(-50%)}.Toastify__toast-container--bottom-right{align-items:end;bottom:max(16px,env(safe-area-inset-bottom));bottom:var(--toastify-toast-bottom);right:max(16px,env(safe-area-inset-right));right:var(--toastify-toast-right)}.Toastify__toast{--y:0;align-items:center;border-radius:6px;border-radius:var(--toastify-toast-bd-radius);box-shadow:0 4px 12px #0000001a;box-shadow:var(--toastify-toast-shadow);box-sizing:border-box;display:flex;flex:1 1 auto;font-family:sans-serif;font-family:var(--toastify-font-family);margin-bottom:1rem;max-height:800px;max-height:var(--toastify-toast-max-height);min-height:64px;min-height:var(--toastify-toast-min-height);padding:14px;padding:var(--toastify-toast-padding);position:relative;touch-action:none;width:320px;width:var(--toastify-toast-width);word-break:break-word;z-index:0}@media only screen and (max-width:480px){.Toastify__toast-container{left:env(safe-area-inset-left);margin:0;width:100vw}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translateX(0)}.Toastify__toast-container--rtl{left:auto;right:env(safe-area-inset-right)}.Toastify__toast{--toastify-toast-width:100%;border-radius:0;margin-bottom:0}}.Toastify__toast-container[data-stacked=true]{width:320px;width:var(--toastify-toast-width)}.Toastify__toast--stacked{position:absolute;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s;width:100%}.Toastify__toast--stacked[data-collapsed] .Toastify__close-button,.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{bottom:100%;content:"";height:calc(var(--g)*1px);left:0;position:absolute;right:0}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{bottom:0;content:"";height:100%;left:0;position:absolute;right:0;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{display:flex;flex-shrink:0;margin-inline-end:10px;width:22px}.Toastify--animate{animation-duration:.5s;animation-fill-mode:both}.Toastify--animate-icon{animation-duration:.3s;animation-fill-mode:both}.Toastify__toast-theme--dark{background:#121212;background:var(--toastify-color-dark);color:#fff;color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:#fff;background:var(--toastify-color-light);color:#757575;color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{background:#3498db;background:var(--toastify-color-info);color:#fff;color:var(--toastify-text-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{background:#07bc0c;background:var(--toastify-color-success);color:#fff;color:var(--toastify-text-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{background:#f1c40f;background:var(--toastify-color-warning);color:#fff;color:var(--toastify-text-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{background:#e74d3c;background:var(--toastify-color-error);color:#fff;color:var(--toastify-text-color-error)}.Toastify__progress-bar-theme--light{background:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:#bb86fc;background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:#3498db;background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:#07bc0c;background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:#f1c40f;background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:#e74d3c;background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:#ffffffb3;background:var(--toastify-color-transparent)}.Toastify__close-button{background:#0000;border:none;color:#fff;cursor:pointer;opacity:.7;outline:none;padding:0;position:absolute;right:6px;top:6px;transition:.3s ease;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:auto}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{bottom:0;height:100%;left:0;opacity:.7;position:absolute;transform-origin:left;width:100%;z-index:1}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{border-bottom-left-radius:0;left:auto;right:0;transform-origin:right}.Toastify__progress-bar--wrp{border-bottom-left-radius:6px;border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:6px;border-bottom-right-radius:var(--toastify-toast-bd-radius);bottom:0;height:5px;left:0;overflow:hidden;position:absolute;width:100%}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{height:100%;opacity:.2;opacity:var(--toastify-color-progress-bgo);width:100%}.Toastify__spinner{animation:Toastify__spin .65s linear infinite;border:2px solid #e0e0e0;border-color:var(--toastify-spinner-color-empty-area);border-radius:100%;border-right-color:#616161;border-right-color:var(--toastify-spinner-color);box-sizing:border-box;height:20px;width:20px}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{animation-timing-function:ease-in;opacity:0;transform:perspective(400px) rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px) rotateX(-20deg)}60%{opacity:1;transform:perspective(400px) rotateX(10deg)}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{opacity:1;transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg)}to{opacity:0;transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg)}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(-110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(0,500px,0);visibility:hidden}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(0,-500px,0);visibility:hidden}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-duration:.3s;animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-duration:.3s;animation-name:Toastify__slideOutRight;animation-timing-function:ease-in}.Toastify__slide-exit--top-center{animation-duration:.3s;animation-name:Toastify__slideOutUp;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-center{animation-duration:.3s;animation-name:Toastify__slideOutDown;animation-timing-function:ease-in}@keyframes Toastify__spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fffcfb;color:#333;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6}.App{display:flex;flex-direction:column;min-height:100vh}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f7fafc}::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a0aec0}:focus{outline:2px solid #093fb4;outline-offset:2px}.Toastify__toast-container{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;width:350px}.Toastify__toast{border:none!important;border-radius:12px!important;box-shadow:0 8px 30px #00000026!important;color:#fffcfb!important;font-size:14px;font-weight:500;min-height:60px;padding:16px!important}.Toastify__toast--success{background:linear-gradient(135deg,#10b981,#059669)!important;color:#fffcfb!important}.Toastify__toast--error{background:linear-gradient(135deg,#ef4444,#dc2626)!important;color:#fffcfb!important}.Toastify__toast--warning{background:linear-gradient(135deg,#f59e0b,#d97706)!important;color:#fffcfb!important}.Toastify__toast--info{background:linear-gradient(135deg,#3b82f6,#2563eb)!important;color:#fffcfb!important}.Toastify__toast--default{background:linear-gradient(135deg,#093fb4,#0056d6)!important;color:#fffcfb!important}.Toastify__toast-body{font-weight:500;line-height:1.4;margin:0;padding:0}.Toastify__toast-body,.Toastify__toast-body>div{color:inherit!important}.Toastify__progress-bar{background:#fffc!important;height:3px!important}.Toastify__close-button{color:#fffc!important;font-size:18px!important;font-weight:700;opacity:.8;transition:opacity .3s ease}.Toastify__close-button:hover{color:#fffcfb!important;opacity:1!important}.Toastify__toast-icon{color:#fffcfb!important;height:24px;margin-right:12px;width:24px}.Toastify__toast svg{fill:currentColor!important}.Toastify__toast .react-icon,.Toastify__toast [data-icon],.Toastify__toast svg{color:#fffcfb!important}.Toastify__toast--success [data-icon],.Toastify__toast--success svg{fill:#fffcfb!important;color:#fffcfb!important}.custom-toast{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #ffffff1a}.custom-toast-body{color:#fffcfb!important;font-weight:500;text-shadow:0 1px 2px #0000001a}.custom-toast-progress{background:#fffc;height:3px}@media (max-width:768px){.Toastify__toast-container{left:16px;margin:0;right:16px;width:calc(100vw - 32px)}.Toastify__toast{border-radius:10px!important;margin-bottom:8px}}.Toastify__toast--loading{background:linear-gradient(135deg,#093fb4,#0056d6)!important;color:#fffcfb!important}.Toastify__spinner{border-color:#fffcfb #ffffff4d #ffffff4d}.custom-toast{border-radius:12px;font-weight:500}.custom-toast--auth{background:linear-gradient(135deg,#093fb4,#0056d6);color:#fffcfb}.custom-toast--voting{background:linear-gradient(135deg,#059669,#047857);color:#fffcfb}.custom-toast--system{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fffcfb}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}:root{--primary-color:#093fb4;--secondary-color:#fffcfb;--accent-pink:#ffd8d8;--accent-red:#ed3500;--success-color:#10b981;--warning-color:#f59e0b;--error-color:#ef4444;--info-color:#3b82f6;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827}.loading{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.fade-in{animation:fadeIn .6s ease-out}.hide-on-mobile{display:block}.show-on-mobile{display:none}@media (max-width:768px){.hide-on-mobile{display:none}.show-on-mobile{display:block}}@media print{.no-print{display:none!important}}@media (prefers-contrast:high){:root{--primary-color:navy;--error-color:#c00;--success-color:#060;--warning-color:#c60}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.student-login{align-items:center;background:linear-gradient(135deg,#fff,#fff);display:flex;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;justify-content:center;min-height:100vh;padding:20px}.student-login__container{background:#fff;border:1px solid #093fb41a;border-radius:20px;box-shadow:0 20px 50px #093fb41f,0 8px 30px #0000000f;max-width:360px;padding:28px;transition:transform .3s ease,box-shadow .3s ease;width:100%}.student-login__container:hover{box-shadow:0 30px 80px #093fb433,0 15px 45px #0000001a;transform:translateY(-4px)}.student-login__header{margin-bottom:20px;text-align:center}.student-login__logo{margin-bottom:6px}.student-login__header h1{color:#093fb4;font-size:24px;font-weight:700;letter-spacing:-.5px;margin:0 0 4px}.student-login__subtitle{color:#666;font-size:13px;line-height:1.4;margin:0}.form-group,.student-login__form{margin-bottom:16px}.form-label{transition:all .2s ease}.form-input::placeholder{letter-spacing:.5px}.form-input:valid:not(:placeholder-shown){background:linear-gradient(135deg,#fff,#f0fdf4);border-color:#22c55e}.form-input:invalid:not(:placeholder-shown):not(:focus){background:linear-gradient(135deg,#fff,#fef2f2);border-color:#ef4444}.input-container:after{background:linear-gradient(90deg,#093fb4,#0056d6);border-radius:2px;bottom:0;content:"";height:3px;left:50%;position:absolute;transform:translateX(-50%);transition:all .3s cubic-bezier(.4,0,.2,1);width:0}.input-container:focus-within:after{width:100%}.form-group.floating .form-label{background:#fffcfb;color:#a0aec0;left:20px;padding:0 8px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);z-index:1}.form-group.floating .form-input:focus+.form-label,.form-group.floating .form-input:not(:placeholder-shown)+.form-label{color:#093fb4;font-size:12px;font-weight:600;top:0}.student-login__footer{color:#666;text-align:center}.admin-switch{margin-bottom:12px}.admin-switch-button{background:#0000;border:2px solid #093fb4;border-radius:6px;color:#093fb4;cursor:pointer;font-size:13px;font-weight:600;letter-spacing:.3px;padding:8px 16px;transition:all .3s ease}.admin-switch-button:hover{background:#093fb4;color:#fffcfb;transform:translateY(-1px)}.student-login__footer p{font-size:12px;margin:0}@media (max-width:768px){.student-login{align-items:center;height:auto;justify-content:center;min-height:100vh;padding:16px}.student-login__container{border:1px solid #093fb41a;border-radius:20px;box-shadow:0 20px 50px #093fb41f,0 8px 30px #0000000f;margin:0 auto;max-width:100%;max-width:400px;padding:28px 24px;width:100%}.student-login__container:hover{box-shadow:0 30px 80px #093fb433,0 15px 45px #0000001a;transform:translateY(-4px)}.student-login__header{margin-bottom:24px}.student-login__logo{margin-bottom:8px}.student-login__header h1{font-size:24px;margin:0 0 4px}.student-login__subtitle{font-size:13px;line-height:1.4;margin:0}.logo-icon{font-size:32px;margin-bottom:6px}.form-group{margin-bottom:18px}.form-label{font-size:13px;margin-bottom:6px}.form-input{border-radius:10px;font-size:15px;padding:12px 45px 12px 14px}.input-icon{font-size:18px;right:16px}.login-button{border-radius:10px;font-size:15px;padding:12px 20px}.student-login__form{margin-bottom:20px}.admin-switch{margin-bottom:16px}.admin-switch-button{border-radius:6px;font-size:13px;padding:8px 16px}.student-login__footer p{font-size:12px;line-height:1.4;margin:0}}@media (max-width:480px){.student-login{align-items:center;justify-content:center;padding:16px}.student-login__container{border-radius:20px;max-width:100%;padding:24px 20px}.student-login__header{margin-bottom:20px}.student-login__logo{margin-bottom:6px}.student-login__header h1{font-size:24px;margin:0 0 4px}.student-login__subtitle{font-size:13px}.logo-icon{font-size:32px;margin-bottom:6px}.form-group{margin-bottom:18px}.form-label{font-size:13px;margin-bottom:6px}.form-input{border-radius:10px;font-size:15px;padding:12px 45px 12px 14px}.input-icon{font-size:18px;right:16px}.login-button{border-radius:10px;font-size:15px;padding:12px 20px}.student-login__form{margin-bottom:20px}.admin-switch{margin-bottom:16px}.admin-switch-button{border-radius:6px;font-size:13px;padding:8px 16px}.student-login__footer p{font-size:12px;margin:0}}@media (max-width:360px){.student-login__container{padding:8px}.student-login__header h1{font-size:18px}.logo-icon{font-size:24px}.form-input{font-size:16px;padding:10px 35px 10px 10px}.login-button{font-size:13px;padding:10px 14px}.election-branding-loading{width:100%}.election-logo-skeleton{height:80px;margin:0 0 16px;width:120px}.election-title-skeleton{height:18px;margin:0 0 24px;width:200px}}@keyframes inputFocus{0%{box-shadow:0 2px 8px #0000000a,0 1px 3px #0000000f}to{box-shadow:0 0 0 4px #093fb41f,0 4px 16px #093fb426,0 2px 6px #00000014}}.form-input:focus{animation:inputFocus .3s cubic-bezier(.4,0,.2,1) forwards}.form-input:invalid:not(:placeholder-shown):not(:focus){animation:shake .4s ease-in-out}.student-login__container{animation:slideUp .6s ease-out}.election-branding-loading{align-items:center;display:flex;flex-direction:column;min-height:124px;overflow:hidden;position:relative;width:100%}.election-logo-skeleton{border-radius:12px;height:80px;margin:0 0 16px;width:120px}.election-logo-skeleton,.election-title-skeleton{animation:pulse 1.5s ease-in-out infinite;background:#f0f0f0;flex-shrink:0}.election-title-skeleton{border-radius:6px;height:20px;margin:0 0 24px;width:250px}.modal-overlay{animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009}.verification-modal{animation:slideUpModal .4s ease-out;background:#fffcfb;border-radius:16px;box-shadow:0 20px 50px #093fb426,0 8px 32px #0000001a;max-width:480px;overflow:hidden;width:100%}.modal-header{background:#fffcfb;border-top-left-radius:16px;border-top-right-radius:16px;padding:24px 24px 16px;text-align:center}.modal-header h2{color:#093fb4;font-size:20px;font-weight:700;letter-spacing:-.5px;margin:0 0 4px}.modal-header p{color:#666;font-size:13px;line-height:1.4;margin:0}.student-card{padding:24px;position:relative}.student-avatar{align-items:center;background:linear-gradient(135deg,#093fb4,#2563eb);border-radius:50%;box-shadow:0 4px 12px #093fb433;color:#fff;display:flex;height:60px;justify-content:center;margin:0 auto 16px;width:60px}.student-info h3{color:#093fb4;font-size:18px;font-weight:700;letter-spacing:-.3px;margin:0 0 16px;text-align:center}.info-grid{grid-gap:12px 8px;display:grid;gap:12px 8px;grid-template-columns:repeat(3,1fr)}.info-item{display:flex;flex-direction:column;gap:2px;text-align:center}.info-item .label{color:#666;font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.info-item .value{color:#333;font-size:12px;font-weight:500;line-height:1.3;word-break:break-word}.voting-status{align-items:center;border-radius:20px;display:flex;font-size:11px;font-weight:600;gap:6px;letter-spacing:.5px;padding:8px 12px;position:absolute;right:20px;text-transform:uppercase;top:20px}.voting-status.voted{background:#22c55e1a;border:1px solid #22c55e33;color:#16a34a}.voting-status.not-voted{background:#093fb41a;border:1px solid #093fb433;color:#093fb4}.modal-actions{padding:16px 24px 24px}.cancel-button,.confirm-button{align-items:center;border:none;border-radius:10px;cursor:pointer;display:flex;flex:1 1;font-size:13px;font-weight:600;justify-content:center;letter-spacing:.3px;padding:12px 16px;transition:all .3s ease}.cancel-button{background:#f7fafc;border:2px solid #e2e8f0;color:#666}.cancel-button:hover{background:#ef4444;border-color:#ef4444;color:#fff;transform:translateY(-1px)}.confirm-button{background:linear-gradient(135deg,#093fb4,#2563eb);color:#fff}.confirm-button:hover:not(.disabled){background:linear-gradient(135deg,#0056d6,#093fb4);box-shadow:0 4px 12px #093fb44d;transform:translateY(-1px)}.confirm-button.disabled{background:#a0aec0;color:#6b7280;cursor:not-allowed}@keyframes slideUpModal{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:768px){.modal-overlay{padding:16px}.verification-modal{border-radius:12px;max-width:90%}.modal-header{padding:20px 20px 12px}.modal-header h2{font-size:18px}.student-card{padding:20px}.student-avatar{height:50px;margin-bottom:12px;width:50px}.student-info h3{font-size:16px;margin-bottom:12px}.info-grid{gap:10px 6px;grid-template-columns:repeat(2,1fr)}.info-item .label{font-size:9px}.info-item .value{font-size:11px}.voting-status{font-size:10px;padding:6px 10px;right:16px;top:16px}.modal-actions{flex-direction:column;gap:10px;padding:12px 20px 20px}.cancel-button,.confirm-button{font-size:12px;padding:11px 16px}}@media (max-width:480px){.modal-overlay{padding:20px}.verification-modal{max-width:95%}.modal-header{padding:16px 16px 10px}.student-card{padding:16px}.info-grid{gap:8px;grid-template-columns:1fr}.info-item{align-items:center;border-bottom:1px solid #f0f0f0;flex-direction:row;justify-content:space-between;padding:6px 0;text-align:left}.info-item:last-child{border-bottom:none}.voting-status{margin:12px auto 0;position:static;width:fit-content}.modal-actions{padding:10px 16px 16px}}.otp-verification-modal-overlay{align-items:center!important;animation:fadeIn .2s ease-out!important;-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important;background:#1e3a8a26!important;bottom:0!important;display:flex!important;justify-content:center!important;left:0!important;position:fixed!important;right:0!important;top:0!important;z-index:1000!important}.otp-verification-modal{animation:slideInScale .3s cubic-bezier(.34,1.56,.64,1)!important;background:#fff!important;border:1px solid #3b82f61a!important;border-radius:20px!important;box-shadow:0 25px 50px #3b82f626,0 0 0 1px #3b82f60d!important;max-width:420px!important;padding:2rem!important;position:relative!important;width:90%!important}.otp-verification-modal .modal-header{align-items:center!important;display:flex!important;flex-direction:row!important;gap:2rem!important;justify-content:flex-start!important;margin-bottom:2rem!important;position:relative!important}.otp-verification-modal .verification-icon{align-items:center!important;background:linear-gradient(135deg,#3b82f6,#2563eb)!important;border-radius:50%!important;box-shadow:0 8px 24px #3b82f62e!important;color:#fff!important;display:flex!important;justify-content:center!important;min-height:64px!important;min-width:64px!important;overflow:hidden!important;padding:12px!important;position:relative!important}.otp-verification-modal .verification-icon:before{animation:shimmer 3s infinite;background:linear-gradient(45deg,#0000,#ffffff1a,#0000);content:"";height:200%;left:-50%;position:absolute;top:-50%;transform:rotate(45deg);width:200%}@keyframes shimmer{0%{transform:translateX(-100%) translateY(-100%) rotate(45deg)}50%{transform:translateX(100%) translateY(100%) rotate(45deg)}to{transform:translateX(-100%) translateY(-100%) rotate(45deg)}}.otp-verification-modal .modal-header h2{background:none!important;color:#1e293b!important;font-size:1.15rem!important;font-weight:700!important;letter-spacing:-.01em!important;line-height:1.3!important;margin-bottom:0!important}.otp-verification-modal .modal-header p{color:#334155!important;font-size:.98rem!important;font-weight:400!important;line-height:1.5!important;margin:0!important;max-width:220px!important;text-align:left!important}.otp-verification-modal .modal-header p strong{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#3b82f6,#1d4ed8);-webkit-background-clip:text;background-clip:text;color:#1e293b!important;font-size:1.05rem!important;font-weight:600!important;letter-spacing:.02em!important}.otp-verification-modal .otp-container{margin-bottom:2rem!important}.otp-verification-modal .otp-inputs{display:flex!important;gap:.75rem!important;justify-content:center!important;margin-bottom:1.5rem!important}.otp-verification-modal .otp-input{background:#f8fafc!important;border:2px solid #e2e8f0!important;border-radius:12px!important;color:#1e293b!important;font-size:1.25rem!important;font-weight:600!important;height:56px!important;outline:none!important;text-align:center!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important;width:52px!important}.otp-verification-modal .otp-input:focus{background:#fff!important;border-color:#3b82f6!important;box-shadow:0 0 0 4px #3b82f61a!important;transform:scale(1.02)!important}.otp-verification-modal .otp-input.error{animation:shake .4s ease-in-out!important;background:#fef2f2!important;border-color:#ef4444!important}.error-message{color:#ef4444;font-size:.875rem;gap:.5rem;margin-top:1rem;padding:.75rem 1rem}.error-icon{color:#ef4444;font-size:1rem}.otp-verification-modal .verification-info{margin-top:1rem!important;text-align:center!important}.otp-verification-modal .timer{background:#f1f5f9!important;border-radius:8px!important;color:#64748b!important;display:inline-block!important;font-size:.875rem!important;font-weight:500!important;margin-bottom:1rem!important;padding:.5rem 1rem!important}.otp-verification-modal .timer .expired{color:#ef4444!important;font-weight:600!important}.otp-verification-modal .resend-link{align-items:center!important;background:none!important;border:none!important;border-radius:6px!important;color:#3b82f6!important;cursor:pointer!important;display:flex!important;font-size:.875rem!important;font-weight:500!important;gap:.4rem!important;justify-content:center!important;margin:0 auto!important;padding:.5rem 1rem!important;transition:all .2s ease!important}.otp-verification-modal .resend-link:hover:not(:disabled){background:#eff6ff!important;color:#2563eb!important}.otp-verification-modal .resend-link:disabled{color:#94a3b8!important;cursor:not-allowed!important;opacity:.5!important}.otp-verification-modal .admin-otp-info{align-items:center!important;background:linear-gradient(135deg,#f3e8ff,#e9d5ff)!important;border:1px solid #c084fc!important;border-radius:8px!important;color:#7c3aed!important;display:flex!important;font-size:.875rem!important;font-weight:500!important;gap:.5rem!important;justify-content:center!important;margin:0 auto!important;padding:.75rem 1rem!important}.otp-verification-modal .admin-otp-info .admin-icon{color:#8b5cf6!important;flex-shrink:0!important}.otp-verification-modal .modal-actions{align-items:stretch!important;display:flex!important;gap:1rem!important}.otp-verification-modal .cancel-button{background:#fff!important;border:2px solid #e2e8f0!important;border-radius:12px!important;color:#64748b!important;cursor:pointer!important;flex:1 1!important;font-size:.95rem!important;font-weight:600!important;padding:.875rem 1.5rem!important;transition:all .2s ease!important}.otp-verification-modal .cancel-button:hover:not(:disabled){background:#f8fafc!important;border-color:#cbd5e0!important;color:#475569!important}.otp-verification-modal .verify-button{align-items:center!important;background:linear-gradient(135deg,#3b82f6,#1e40af)!important;border:none!important;border-radius:12px!important;box-shadow:0 4px 14px #3b82f64d!important;color:#fff!important;cursor:pointer!important;display:flex!important;flex:2 1!important;font-size:.95rem!important;font-weight:600!important;gap:.5rem!important;justify-content:center!important;overflow:hidden!important;padding:.875rem 1.5rem!important;position:relative!important;transition:all .2s ease!important}.otp-verification-modal .verify-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8)!important;box-shadow:0 8px 25px #3b82f666!important;transform:translateY(-1px)!important}.verify-button:disabled{box-shadow:0 4px 14px #3b82f633}.verify-button.loading{cursor:not-allowed}.spinner{border:2px solid #ffffff4d;border-top-color:#fff;height:18px;width:18px}.resend-icon{font-size:.875rem}.verify-icon{font-size:1rem}@media (max-width:640px){.otp-modal{border-radius:16px;margin:1rem;padding:1.5rem;width:calc(100% - 2rem)}.verification-icon{border-radius:16px;height:64px;width:64px}.otp-modal .modal-header h2{font-size:1.3rem}.otp-inputs{gap:.5rem}.otp-input{font-size:1.1rem;height:48px;width:44px}.otp-modal .modal-actions{gap:.75rem}.otp-modal .cancel-button,.verify-button{font-size:.9rem;padding:.75rem 1.2rem}.resend-button{font-size:.75rem;padding:.4rem .8rem}}@media (prefers-contrast:high){.otp-input{border-width:3px}.verification-icon,.verify-button{background:#1e40af}}.otp-modal .modal-header{margin-bottom:1.5rem;text-align:center}.verification-icon{align-items:center;animation:pulse 2s infinite;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;display:flex;height:60px;justify-content:center;margin:0 auto 1rem;width:60px}.otp-modal .modal-header h2{color:#2d3748;font-size:1.3rem;font-weight:600;margin-bottom:.4rem}.otp-modal .modal-header p{color:#718096;font-size:.9rem;line-height:1.4}.otp-container{margin-bottom:1.5rem}.otp-inputs{display:flex;gap:.6rem;justify-content:center;margin-bottom:1rem}.otp-input{background:#f7fafc;border:2px solid #e2e8f0;border-radius:10px;color:#2d3748;font-size:1.3rem;font-weight:600;height:50px;outline:none;text-align:center;transition:all .2s ease;width:45px}.otp-input:focus{background:#fff;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;transform:scale(1.05)}.otp-input.error{animation:shake .4s ease-in-out;background:#fed7d7;border-color:#e53e3e}.otp-input:disabled{cursor:not-allowed;opacity:.6}.error-message{animation:slideInDown .3s ease-out;background:#fed7d7;color:#e53e3e;font-size:.8rem;gap:.4rem;justify-content:center;margin-top:.6rem;padding:.4rem}@keyframes slideInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.error-icon{font-size:.9rem}.verification-info{margin-top:1rem;text-align:center}.timer{color:#718096;font-size:.875rem;font-weight:500}.timer .expired{color:#e53e3e;font-weight:600}.otp-modal .modal-actions{align-items:center;display:flex;gap:.8rem}.otp-modal .cancel-button{background:#fff;border:2px solid #e2e8f0;border-radius:10px;color:#4a5568;cursor:pointer;flex:1 1;font-size:.9rem;font-weight:600;padding:.75rem 1.2rem;transition:all .2s ease}.otp-modal .cancel-button:hover:not(:disabled){background:#f7fafc;border-color:#cbd5e0}.otp-modal .cancel-button:disabled{cursor:not-allowed;opacity:.5}.verify-actions{display:flex;flex:2 1;flex-direction:column;gap:.4rem}.resend-button{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#667eea;cursor:pointer;display:flex;font-size:.75rem;font-weight:500;gap:.3rem;justify-content:center;padding:.4rem .8rem;transition:all .2s ease}.resend-button:hover:not(:disabled){background:#f7fafc;border-color:#667eea}.resend-button:disabled{color:#a0aec0;cursor:not-allowed;opacity:.5}.verify-button{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:.4rem;justify-content:center;overflow:hidden;padding:.75rem 1.2rem;position:relative;transition:all .2s ease}.verify-button:hover:not(:disabled){box-shadow:0 8px 25px #667eea4d;transform:translateY(-1px)}.verify-button:active:not(:disabled){transform:translateY(0)}.verify-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.verify-button.loading{color:#0000}.verify-button .spinner{animation:spin 1s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:20px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:20px}.resend-icon{font-size:.8rem}.verify-icon{font-size:.9rem}@media (max-width:640px){.otp-modal{margin:1rem;padding:1.2rem;width:calc(100% - 2rem)}.verification-icon{height:50px;width:50px}.otp-modal .modal-header h2{font-size:1.2rem}.otp-inputs{gap:.4rem}.otp-input{font-size:1.25rem;height:45px;width:38px}.otp-modal .modal-actions{flex-direction:column;gap:.75rem}.otp-modal .cancel-button,.verify-actions{flex:none;width:100%}.verify-actions{flex-direction:column-reverse}}.otp-input:not(:placeholder-shown){animation:inputFill .2s ease-out}@keyframes inputFill{0%{transform:scale(.95)}to{transform:scale(1)}}@media (prefers-contrast:high){.otp-input{border-width:3px}.verification-icon,.verify-button{background:#000}}@media (prefers-reduced-motion:reduce){.error-message,.otp-input,.otp-modal,.verification-icon{animation:none}.verify-button:hover{transform:none}}.voting-modal{background:#fff;border-radius:12px;box-shadow:0 20px 40px #00000026;display:flex;flex-direction:column;max-height:90vh;max-width:1200px;overflow:hidden;width:95%}.voting-modal .modal-header{align-items:center;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-bottom:1px solid #e2e8f0;color:#fff!important;display:flex;justify-content:space-between;padding:1.5rem 2rem}.voting-modal .modal-title{align-items:center;color:#fff!important;display:flex;gap:1rem}.voting-modal .modal-title *{color:#fff!important}.vote-icon{font-size:2rem}.voting-modal .modal-title h1{color:#fff!important;font-size:1.5rem;font-weight:600;margin:0}.voting-modal .modal-title p{color:#fff!important;font-size:.9rem;margin:0;opacity:.95}.voting-modal .btn-icon{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:40px;justify-content:center;transition:background-color .2s ease;width:40px}.voting-modal .btn-icon:hover:not(:disabled){background:#ffffff4d}.voting-modal .btn-icon:disabled{cursor:not-allowed;opacity:.5}.voting-modal .modal-body{flex:1 1;overflow-y:auto;padding:0}.voting-loading{align-items:center;color:#6b7280;display:flex;flex-direction:column;justify-content:center;padding:4rem 2rem}.loading-spinner{border:3px solid #f3f4f6}.voting-interface{padding:2rem}.position-header{margin-bottom:2rem;padding-bottom:1rem}.position-info h2{color:#1f2937;font-size:1.5rem;margin:0 0 .5rem}.position-info p{color:#6b7280;font-size:.9rem;margin:0}.progress-indicator{text-align:right}.progress-indicator span{color:#6b7280;display:block;font-size:.9rem;margin-bottom:.5rem}.progress-bar{background:#e2e8f0;border-radius:2px;height:4px;overflow:hidden;width:200px}.progress-fill{background:linear-gradient(90deg,#3b82f6,#1d4ed8);height:100%;transition:width .3s ease}.candidates-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-bottom:2rem}.candidate-card{border-radius:16px;box-shadow:0 4px 12px #00000014;cursor:pointer;overflow:hidden;padding:24px}.candidate-card:before{background:linear-gradient(90deg,#3b82f6,#1d4ed8);content:"";height:4px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.candidate-card:hover{border-color:#3b82f6;box-shadow:0 12px 32px #3b82f626;transform:translateY(-4px)}.candidate-card:hover:before{opacity:1}.candidate-card.selected{background:linear-gradient(135deg,#f0fdf4,#fff);border-color:#10b981;box-shadow:0 12px 32px #10b98133}.candidate-card.selected:before{background:linear-gradient(90deg,#10b981,#059669);opacity:1}.candidate-image{border:4px solid #f3f4f6;border-radius:50%;height:100px;margin:0 auto 1.5rem;overflow:hidden;position:relative;transition:all .3s ease;width:100px}.candidate-card:hover .candidate-image{border-color:#e0e7ff;transform:scale(1.05)}.candidate-card.selected .candidate-image{border-color:#d1fae5}.candidate-image img{height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.placeholder-image{align-items:center;background:linear-gradient(135deg,#f8fafc,#e2e8f0);color:#64748b;display:flex;height:100%;justify-content:center;transition:all .3s ease;width:100%}.candidate-card.selected .placeholder-image{background:linear-gradient(135deg,#ecfdf5,#d1fae5);color:#10b981}.selection-indicator{align-items:center;animation:scaleIn .3s ease forwards;background:#10b981;border:3px solid #fff;border-radius:50%;box-shadow:0 4px 12px #10b9814d;color:#fff;display:flex;height:32px;justify-content:center;position:absolute;right:16px;top:16px;transform:scale(0);width:32px;z-index:10}@keyframes scaleIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.candidate-info{text-align:center}.candidate-name{color:#1f2937;font-size:1.25rem;font-weight:700;line-height:1.3;margin:0 0 1rem}.candidate-meta{align-items:center;display:flex;flex-direction:column;gap:12px}.programme-info{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:20px;color:#6b7280;display:flex;font-size:14px;font-weight:500;gap:8px;padding:8px 16px}.candidate-card.selected .programme-info{background:#f0fdf4;border-color:#d1fae5;color:#065f46}.level-info{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.group-badge,.level-badge{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:16px;color:#475569;font-size:12px;font-weight:600;letter-spacing:.5px;padding:6px 12px;text-transform:uppercase;transition:all .3s ease}.level-badge{background:#dbeafe;border-color:#bfdbfe;color:#1e40af}.group-badge{background:#fef3c7;border-color:#fde68a;color:#d97706}.candidate-card.selected .level-badge{background:#d1fae5;border-color:#a7f3d0;color:#065f46}.candidate-card.selected .group-badge{background:#e0e7ff;border-color:#c7d2fe;color:#3730a3}.selection-status{border-top:1px solid #f1f5f9;margin-top:16px;padding:12px 0 0;text-align:center}.selected-text{align-items:center;color:#10b981;display:flex;font-size:14px;font-weight:700;gap:6px;justify-content:center;letter-spacing:1px;text-transform:uppercase}.select-text{color:#9ca3af;font-size:13px;font-style:italic;transition:color .3s ease}.candidate-card:hover .select-text{color:#3b82f6;font-weight:500}.voting-actions{align-items:center;border-top:1px solid #e2e8f0;display:flex;justify-content:space-between;padding-top:1rem}.btn{font-size:.9rem;gap:.5rem;padding:.75rem 1.5rem}.btn-primary{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.btn-primary:hover:not(:disabled){box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.btn-secondary{background:#f3f4f6;border:1px solid #d1d5db}.btn-secondary:hover:not(:disabled){background:#e5e7eb}.btn-outline{border:1px solid #d1d5db}.btn-outline:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.btn-success{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-success:hover:not(:disabled){box-shadow:0 4px 12px #10b9814d;transform:translateY(-1px)}.vote-preview{padding:2rem}.preview-header{border-bottom:1px solid #e2e8f0;margin-bottom:2rem;padding-bottom:1rem;text-align:center}.preview-header h2{color:#1f2937;font-size:1.5rem;margin:0 0 .5rem}.preview-header p{color:#6b7280;margin:0}.selections-summary{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.selection-item{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.position-title{background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:1rem}.position-title h3{color:#374151;font-size:1rem;margin:0}.selected-candidate{padding:1rem}.candidate-summary{align-items:center;display:flex;gap:1rem}.candidate-avatar{align-items:center;background:#f3f4f6;color:#9ca3af;display:flex;height:48px;justify-content:center;width:48px}.candidate-details .name{color:#1f2937;display:block;font-weight:600;margin-bottom:.25rem}.candidate-details .programme{color:#6b7280;font-size:.9rem}.no-selection{color:#9ca3af;font-style:italic}.preview-actions{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.submission-notice{align-items:flex-start;background:#fffbeb;border:1px solid #fed7aa;border-radius:8px;display:flex;gap:.75rem;padding:1rem}.notice-icon{font-size:1.2rem;margin-top:.1rem}.submission-notice p{color:#92400e;font-size:.9rem;line-height:1.5;margin:0}.submission-notice strong{color:#78350f}.spinner{border-top-color:currentcolor;height:16px;width:16px}.spinner.small{border-width:2px;height:14px;width:14px}@media (max-width:768px){.voting-modal{border-radius:8px;max-height:88vh;width:95%}.voting-modal .modal-header{padding:1rem 1.25rem}.voting-modal .modal-title h1{font-size:1.2rem}.voting-modal .modal-title p{font-size:.85rem}.voting-interface{padding:1.25rem}.position-header{align-items:flex-start;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.position-info h2{font-size:1.3rem}.position-info p{font-size:.85rem}.progress-indicator{text-align:left;width:100%}.progress-bar{width:100%}.candidates-grid{gap:.75rem;grid-template-columns:1fr}.candidate-card{padding:1rem}.candidate-image{height:70px;margin-bottom:1rem;width:70px}.candidate-name{font-size:1.1rem}.programme-info{font-size:13px;padding:6px 12px}.voting-actions{flex-direction:column;gap:.75rem}.voting-actions .btn{font-size:.85rem;justify-content:center;padding:.65rem 1rem;width:100%}.preview-actions{flex-direction:column;gap:.75rem}.preview-actions .btn{justify-content:center;padding:.65rem 1rem;width:100%}.vote-preview{padding:1.25rem}.preview-header h2{font-size:1.3rem}.candidate-summary{flex-direction:column;gap:.75rem;text-align:center}.submission-notice{font-size:.85rem;padding:.75rem}}@media (max-width:480px){.voting-modal{border-radius:6px;max-height:85vh;width:92%}.voting-modal .modal-header{padding:.75rem 1rem}.vote-preview,.voting-interface{padding:1rem}.voting-modal .modal-title{gap:.5rem}.vote-icon{font-size:1.25rem}.voting-modal .modal-title h1{font-size:1.1rem}.voting-modal .modal-title p{font-size:.8rem}.position-info h2{font-size:1.2rem}.candidate-card{padding:.75rem}.candidate-image{height:60px;margin-bottom:.75rem;width:60px}.candidate-name{font-size:1rem;margin-bottom:.75rem}.programme-info{font-size:12px;padding:5px 10px}.group-badge,.level-badge{font-size:11px;padding:4px 8px}.preview-actions .btn,.voting-actions .btn{font-size:.8rem;padding:.6rem .75rem}.selection-item{margin-bottom:.75rem}.position-title,.selected-candidate{padding:.75rem}.submission-notice{font-size:.8rem;padding:.65rem}}.admin-access-modal-overlay{align-items:center!important;animation:fadeIn .2s ease-out!important;-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important;background:#fff!important;bottom:0!important;display:flex!important;justify-content:center!important;left:0!important;position:fixed!important;right:0!important;top:0!important;z-index:1000!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.admin-access-modal{animation:slideInScale .3s cubic-bezier(.34,1.56,.64,1)!important;background:#fff!important;border:1px solid #3b82f61a!important;border-radius:16px!important;box-shadow:0 24px 64px 0 #3b82f640,0 0 0 2px #3b82f61a!important;max-width:360px!important;padding:1.5rem!important;position:relative!important;width:90%!important}@keyframes slideInScale{0%{opacity:0;transform:scale(.95) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.admin-access-modal .modal-header{align-items:center!important;display:flex!important;flex-direction:column!important;margin-bottom:1.5rem!important;text-align:center!important}.admin-access-modal .access-icon{align-items:center!important;background:linear-gradient(135deg,#3b82f6,#1e40af)!important;border-radius:50%!important;box-shadow:0 6px 16px #3b82f64d!important;color:#fff!important;display:flex!important;height:56px!important;justify-content:center!important;margin-bottom:.75rem!important;width:56px!important}.admin-access-modal .modal-header h2{color:#1e293b!important;font-size:1.375rem!important;font-weight:700!important;margin:0 0 .375rem!important}.admin-access-modal .modal-header p{color:#64748b!important;font-size:.95rem!important;line-height:1.5!important;margin:0!important}.admin-access-modal .modal-header strong{color:#3b82f6!important;font-weight:600!important}.admin-access-modal .access-container{margin-bottom:1.5rem!important}.admin-access-modal .access-inputs{display:flex!important;gap:.625rem!important;justify-content:center!important;margin-bottom:.875rem!important}.admin-access-modal .access-input{background:#fff!important;border:2px solid #e2e8f0!important;border-radius:10px!important;color:#1e293b!important;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif!important;font-size:1.375rem!important;font-weight:600!important;height:50px!important;outline:none!important;text-align:center!important;transition:all .2s ease!important;width:42px!important}.admin-access-modal .access-input:focus{border-color:#3b82f6!important;box-shadow:0 0 0 3px #3b82f61a!important;transform:scale(1.05)!important}.admin-access-modal .access-input.error{animation:shake .5s ease-in-out!important;border-color:#ef4444!important;box-shadow:0 0 0 3px #ef44441a!important}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.admin-access-modal .access-input:disabled{cursor:not-allowed!important;opacity:.6!important}.admin-access-modal .error-message{align-items:center!important;background:#fef2f2!important;border:1px solid #fecaca!important;border-radius:8px!important;color:#ef4444!important;display:flex!important;font-size:.875rem!important;font-weight:500!important;gap:.5rem!important;justify-content:center!important;margin-bottom:.875rem!important;padding:.625rem!important}.admin-access-modal .access-info{text-align:center!important}.admin-access-modal .info-item{align-items:center!important;color:#64748b!important;display:inline-flex!important;font-size:.875rem!important;font-weight:500!important;gap:.5rem!important}.admin-access-modal .modal-actions{align-items:stretch!important;display:flex!important;gap:1rem!important}.admin-access-modal .cancel-button{background:#fff!important;border:2px solid #e2e8f0!important;border-radius:10px!important;color:#64748b!important;cursor:pointer!important;flex:1 1!important;font-size:.9rem!important;font-weight:600!important;padding:.75rem 1.25rem!important;transition:all .2s ease!important}.admin-access-modal .cancel-button:hover:not(:disabled){background:#f8fafc!important;border-color:#cbd5e0!important;color:#475569!important}.admin-access-modal .verify-button{background:linear-gradient(135deg,#3b82f6,#1e40af)!important;border:none!important;border-radius:10px!important;box-shadow:0 3px 10px #3b82f666!important;color:#fff!important;cursor:pointer!important;flex:2 1!important;font-size:.9rem!important;font-weight:600!important;padding:.75rem 1.25rem!important;transition:all .2s ease!important}.admin-access-modal .verify-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1e3a8a)!important;box-shadow:0 4px 12px #3b82f680!important;transform:translateY(-1px)!important}.admin-access-modal .verify-button:disabled{box-shadow:0 3px 10px #3b82f633!important;cursor:not-allowed!important;opacity:.6!important;transform:none!important}@media (max-width:480px){.admin-access-modal{margin:1rem!important;max-width:none!important;padding:1.5rem!important}.admin-access-modal .access-inputs{flex-wrap:wrap!important;gap:.5rem!important}.admin-access-modal .access-input{font-size:1.25rem!important;height:48px!important;width:40px!important}.admin-access-modal .modal-actions{flex-direction:column!important}.admin-access-modal .verify-button{flex:1 1!important}}.admin-login{align-items:center;background:linear-gradient(135deg,#fff,#fff 50%,#fff);display:flex;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;justify-content:center;min-height:100vh;padding:20px}.admin-login__container{background:#fff;border:1px solid #093fb41a;border-radius:20px;box-shadow:0 20px 50px #093fb41f,0 8px 30px #0000000f;max-width:360px;padding:28px;transition:transform .3s ease,box-shadow .3s ease;width:100%}.admin-login__container:hover{box-shadow:0 30px 80px #093fb433,0 15px 45px #0000001a;transform:translateY(-4px)}.admin-login__header{margin-bottom:24px;text-align:center}.admin-login__logo{margin-bottom:8px}.logo-icon{font-size:32px;margin-bottom:6px}.admin-login__header h1{color:#093fb4;font-size:24px;font-weight:700;letter-spacing:-.5px;margin:0 0 4px}.admin-login__subtitle{color:#666;font-size:13px;line-height:1.4;margin:0}.admin-login__form{margin-bottom:20px}.form-group{margin-bottom:18px}.password-toggle{color:#a0aec0;font-size:18px;padding:0;right:16px;transition:color .3s ease}.password-toggle:hover{color:#093fb4}.form-options{flex-wrap:wrap;gap:8px;justify-content:space-between;margin-bottom:20px}.form-options,.remember-me{align-items:center;display:flex}.remember-me{color:#666;cursor:pointer;font-size:14px;font-weight:500}.remember-me input[type=checkbox]{display:none}.checkmark{border:2px solid #e2e8f0;border-radius:4px;height:20px;margin-right:8px;position:relative;transition:all .3s ease;width:20px}.remember-me input[type=checkbox]:checked+.checkmark{background:#093fb4;border-color:#093fb4}.remember-me input[type=checkbox]:checked+.checkmark:after{color:#fffcfb;content:"✓";font-size:12px;font-weight:700;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.forgot-password-link{background:none;border:none;color:#093fb4;cursor:pointer;font-size:14px;font-weight:500;padding:0;text-decoration:none;transition:color .3s ease}.forgot-password-link:hover:not(:disabled){color:#0056d6;text-decoration:underline}.forgot-password-link:disabled{color:#999;cursor:not-allowed}.forgot-password{color:#093fb4;font-size:14px;font-weight:500;text-decoration:none;transition:color .3s ease}.forgot-password:hover{color:#0056d6;text-decoration:underline}.login-button{align-items:center;background:linear-gradient(135deg,#093fb4,#0056d6);border:none;border-radius:10px;color:#fffcfb;cursor:pointer;display:flex;font-size:15px;font-weight:600;gap:6px;justify-content:center;letter-spacing:.3px;overflow:hidden;padding:12px 20px;position:relative;transition:all .3s ease;width:100%}.login-button:hover:not(:disabled){background:linear-gradient(135deg,#0056d6,#093fb4);box-shadow:0 8px 25px #093fb44d;transform:translateY(-2px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{background:#a0aec0;box-shadow:none;cursor:not-allowed;transform:none}.login-button.loading .spinner{animation:spin 1s linear infinite;border:2px solid #fffcfb4d;border-radius:50%;border-top-color:#fffcfb;height:20px;width:20px}.button-icon{font-size:18px}.login-button:hover:not(:disabled) .button-icon{transform:translateX(4px)}.admin-login__footer{color:#666;text-align:center}.student-switch{margin-bottom:16px}.student-switch-button{background:#0000;border:2px solid #e2e8f0;border-radius:6px;color:#666;cursor:pointer;font-size:13px;font-weight:500;letter-spacing:.3px;padding:8px 16px;transition:all .3s ease}.student-switch-button:hover{background:#f7fafc;border-color:#093fb4;color:#093fb4;transform:translateX(-2px)}.support-text{font-size:12px;line-height:1.4;margin:0}@media (max-width:768px){.admin-login{padding:16px}.admin-login__container{border-radius:20px;padding:32px 24px}.admin-login__header h1{font-size:28px}.logo-icon{font-size:40px}.form-input{font-size:16px;padding:14px 46px 14px 14px}.login-button{font-size:15px;padding:14px 20px}.form-options{align-items:stretch;flex-direction:column;gap:16px}.security-badges{flex-direction:column;gap:12px}}@media (max-width:480px){.admin-login__container{padding:24px 20px}.admin-login__header h1{font-size:24px}.logo-icon{font-size:36px}.security-badges{gap:8px}.security-badge{font-size:12px;padding:6px 12px}}.admin-login__container{animation:slideUp .6s ease-out}.admin-login a:focus,.admin-login button:focus,.admin-login input:focus{outline:2px solid #093fb4;outline-offset:2px}@media (prefers-contrast:high){.admin-login__container{border:2px solid #093fb4}.form-input{border-width:2px}.form-input:focus{border-width:3px}}.admin-dashboard{background:#f8fafc;display:flex;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;overflow-x:hidden;width:100%}.admin-dashboard,.admin-main{min-height:100vh;position:relative}.admin-main{flex:1 1;margin-left:280px;min-width:0;transition:margin-left .3s ease;width:calc(100% - 280px)}.admin-main.sidebar-collapsed{margin-left:80px;width:calc(100% - 80px)}.admin-content{box-sizing:border-box;margin:0;max-width:100%;padding:32px;width:100%}@media (max-width:1024px){.admin-main{margin-left:80px;width:calc(100% - 80px)}.admin-main.sidebar-collapsed{margin-left:0;width:100%}.admin-content{padding:24px 20px}}@media (max-width:768px){.admin-main{margin-left:0;width:100%}.admin-content{padding:80px 16px 20px}}.sidebar{backface-visibility:hidden;background:#fff;border-right:1px solid #e2e8f0;box-shadow:4px 0 20px #0000001a;color:#333;display:flex;flex-direction:column;height:100vh;left:0;overflow-x:hidden;position:fixed;top:0;transform:translateZ(0);transition:width .3s ease;width:280px;z-index:1000}.mobile-menu-toggle{background:#093fb4;border:none;border-radius:8px;box-shadow:0 4px 12px #093fb44d;color:#fff;cursor:pointer;display:none;left:20px;padding:12px;position:fixed;top:20px;transition:all .3s ease;z-index:1001}.mobile-menu-toggle:hover{background:#0056d6;transform:scale(1.05)}.mobile-menu-toggle:active{transform:scale(.95)}.mobile-overlay{background:#00000080;bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:999}.sidebar.collapsed{width:80px}.sidebar-header{border-bottom:1px solid #e2e8f0;padding:24px 20px;position:relative}.sidebar-brand{align-items:center;display:flex;gap:12px}.brand-icon{color:#093fb4;filter:drop-shadow(0 2px 8px rgba(0,0,0,.1));font-size:32px}.brand-text h1{color:#093fb4;font-size:20px;font-weight:700;letter-spacing:-.5px;margin:0}.brand-text p{color:#666;font-size:12px;font-weight:400;margin:2px 0 0;opacity:.6}.sidebar-nav{flex:1 1;overflow-x:hidden;overflow-y:auto;padding:20px 0}.nav-list{list-style:none;margin:0;padding:0}.nav-item{margin-bottom:4px}.nav-link{align-items:center;background:none;border:none;border-radius:8px;color:#666;cursor:pointer;display:flex;gap:16px;margin:0 12px;overflow:hidden;padding:16px 20px;position:relative;text-align:left;transition:all .3s ease;width:100%;width:calc(100% - 24px)}.nav-link:hover{transform:translateX(4px)}.nav-link.active,.nav-link:hover{background:linear-gradient(135deg,#093fb4,#0056d6);box-shadow:0 4px 12px #093fb44d;color:#fff}.nav-link.active:before{background:#093fb4;border-radius:0 4px 4px 0;bottom:0;content:"";left:-12px;position:absolute;top:0;width:4px}.nav-icon{font-size:20px;min-width:24px;text-align:center}.nav-content{flex:1 1;min-width:0}.nav-label{display:block;font-size:14px;font-weight:600;margin-bottom:2px}.nav-description{display:block;font-size:11px;font-weight:400;opacity:.7}.submenu-arrow{margin-left:auto;opacity:.7;transition:transform .3s ease}.submenu{animation:slideDown .3s ease-out;background:#f8fafc;border-radius:8px;list-style:none;margin:8px 0 0;overflow:hidden;padding:0}.submenu-item{margin:0}.submenu-link{align-items:center;background:none;border:none;color:#374151;cursor:pointer;display:flex;font-size:13px;gap:12px;padding:12px 16px 12px 32px;position:relative;text-align:left;transition:all .3s ease;width:100%}.submenu-link:hover{background:#e5e7eb;color:#093fb4}.submenu-link.active{background:#ebf4ff;color:#093fb4;font-weight:600}.submenu-link.active:before{background:#093fb4;bottom:0;content:"";left:0;position:absolute;top:0;width:3px}.submenu-icon{font-size:16px;min-width:16px;opacity:.8;text-align:center}.submenu-content{flex:1 1;min-width:0}.submenu-label{display:block;font-size:13px;font-weight:500;margin-bottom:1px}.submenu-description{display:block;font-size:10px;font-weight:400;opacity:.7}@keyframes slideDown{0%{max-height:0;opacity:0;transform:translateY(-10px)}to{max-height:200px;opacity:1;transform:translateY(0)}}.sidebar-footer{border-top:1px solid #e2e8f0;padding:20px}.user-section{position:relative}.user-profile{align-items:center;background:#f7fafc;border:1px solid #e2e8f0;border-radius:12px;color:#333;cursor:pointer;display:flex;gap:12px;padding:12px;transition:all .3s ease;width:100%}.user-profile:hover{box-shadow:0 4px 12px #093fb44d;transform:translateY(-1px)}.user-avatar,.user-profile:hover{background:linear-gradient(135deg,#093fb4,#0056d6);color:#fff}.user-avatar{align-items:center;border-radius:50%;display:flex;font-size:16px;font-weight:700;height:36px;justify-content:center;transition:all .3s ease;width:36px}.user-profile:hover .user-avatar{background:#fff3}.user-info{flex:1 1;min-width:0;text-align:left}.user-name{font-size:14px;font-weight:600;margin-bottom:2px}.user-name,.user-role{color:inherit;display:block}.user-role{font-size:11px;opacity:.7;text-transform:capitalize}.dropdown-arrow{color:inherit;font-size:10px;transition:transform .3s ease}.user-menu{animation:slideUpMenu .3s ease-out;background:#fff;border:1px solid #e2e8f0;border-radius:8px;bottom:100%;box-shadow:0 8px 30px #00000026;left:0;margin-bottom:8px;overflow:hidden;position:absolute;right:0}.user-menu-item{align-items:center;background:none;border:none;color:#333;cursor:pointer;display:flex;font-size:14px;gap:12px;padding:12px 16px;text-align:left;transition:background .3s ease;width:100%}.user-menu-item:hover{background:#f7fafc}.user-menu-item.logout{border-top:1px solid #e2e8f0;color:#ed3500}.user-menu-item.logout:hover{background:#fef2f2}.menu-icon{font-size:16px}@keyframes slideUpMenu{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1024px){.sidebar{width:240px}}@media (max-width:768px){.mobile-menu-toggle,.mobile-overlay{display:block}.sidebar{transform:translateX(-100%);transition:transform .3s ease;z-index:1000}.sidebar.mobile-open{transform:translateX(0)}.sidebar-footer{padding:16px}.user-profile{gap:10px;padding:10px}.user-info{flex:1 1;min-width:0;overflow:hidden}.user-name{font-size:13px}.user-name,.user-role{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role{font-size:10px}.user-avatar{font-size:14px;height:32px;width:32px}.dropdown-arrow,.user-avatar{flex-shrink:0}}.logout-notification{align-items:center;animation:slideIn .3s ease-out;border-radius:6px;display:flex;font-size:14px;font-weight:500;gap:8px;margin-top:16px;padding:12px 16px}.logout-notification.info{background-color:#dbeafe;border:1px solid #93c5fd;color:#1e40af}.logout-notification.success{background-color:#dcfce7;border:1px solid #86efac;color:#166534}.logout-notification.error{background-color:#fee2e2;border:1px solid #fca5a5;color:#dc2626}.notification-message{flex:1 1}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.candidate-view-modal-compact{background:#fff;border-radius:12px;box-shadow:0 10px 25px #00000026;box-sizing:border-box;margin:0 auto;max-width:500px!important;overflow:hidden;padding:0!important;width:90%!important}.candidate-view-modal-compact .modal-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin:0;padding:1rem 1.5rem}.candidate-view-modal-compact .modal-content{margin:0!important;max-width:none!important;padding:0!important;width:100%!important}.users-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-top:1rem;overflow-x:auto}.users-table{border-collapse:collapse;min-width:800px;width:100%}.users-table td,.users-table th{border-bottom:1px solid #e2e8f0;padding:12px 16px;text-align:left}.users-table th{color:#374151;font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.users-table th,.users-table tr:hover{background-color:#f8fafc}.users-table tbody tr:last-child td{border-bottom:none}.role-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:500;letter-spacing:.05em;padding:4px 8px;text-transform:uppercase}.role-badge.ec{background-color:#dbeafe;color:#1e40af}.role-badge.deputy-ec{background-color:#fef3c7;color:#92400e}.role-badge.secretary{background-color:#d1fae5;color:#065f46}.role-badge.pro{background-color:#fde68a;color:#92400e}.role-badge.member{background-color:#e5e7eb;color:#374151}.role-badge.super-admin{background-color:#fecaca;color:#991b1b}.action-buttons{flex-wrap:wrap}.btn-edit{background-color:#3b82f6;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:6px 12px;transition:background-color .2s}.btn-edit:hover{background-color:#2563eb}.btn-warning{background-color:#f59e0b;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:6px 12px;transition:background-color .2s}.btn-warning:hover{background-color:#d97706}.modal-overlay{background-color:#00000080;box-sizing:border-box}.modal-content{box-shadow:0 10px 25px #00000026;max-width:500px;overflow-y:auto;position:relative}.large-modal{max-height:85vh;max-width:800px}.manage-users .permissions-modal{display:flex;flex-direction:column;max-height:85vh;max-width:800px}.manage-users .permissions-modal .modal-header{flex-shrink:0}.manage-users .permissions-modal form{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.manage-users .permissions-modal .permissions-grid{flex:1 1;margin-bottom:0;overflow-y:auto}.manage-users .permissions-modal .modal-actions{flex-shrink:0;margin-top:16px}.manage-users .permissions-sections{flex:1 1;overflow-y:auto;padding-right:8px}.manage-users .permission-category{margin-bottom:24px}.manage-users .permission-category:last-child{margin-bottom:0}.manage-users .permission-category h3{border-bottom:2px solid #e5e7eb;color:#1f2937;font-size:16px;font-weight:600;margin:0 0 12px;padding-bottom:8px}.compact-modal{max-width:600px}.compact-modal .form-grid-two-columns{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:16px}.compact-modal .form-group-full-width{grid-column:1/-1}.compact-modal form{padding:20px}.compact-modal .form-group{margin-bottom:14px}.modal-header{background-color:#f8fafc;padding:20px 24px}.modal-header h2{color:#1f2937;font-size:18px;font-weight:600;margin:0}.modal-close{align-items:center;background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:0;width:32px}.modal-close:hover{background-color:#e5e7eb;color:#374151}.modal-content form{padding:24px}.form-group label{display:block;margin-bottom:6px}.form-group input,.form-group select{border:1px solid #d1d5db;border-radius:6px;box-sizing:border-box;font-size:14px;padding:10px 12px;transition:border-color .2s,box-shadow .2s;width:100%}.form-group input:focus,.form-group select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.manage-users .permissions-grid{grid-gap:12px 16px;display:grid;gap:12px 16px;grid-template-columns:1fr 1fr;margin-bottom:24px;max-height:60vh;overflow-y:auto}.manage-users .permission-item{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:10px 12px}.manage-users .checkbox-label{align-items:center;color:#374151;cursor:pointer;display:flex;font-size:13px;line-height:1.4;margin:0}.manage-users .checkbox-label input[type=checkbox]{cursor:pointer;flex-shrink:0;margin-right:8px;width:auto}@media (max-width:768px){.manage-users .permissions-grid{gap:8px;grid-template-columns:1fr}.manage-users .permission-item{padding:8px 10px}.manage-users .checkbox-label{font-size:12px}}.checkmark{margin-left:4px}.modal-actions{border-top:1px solid #e2e8f0;display:flex;gap:12px;justify-content:flex-end;padding-top:20px}.btn-primary{background-color:#3b82f6;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:background-color .2s}.btn-primary:hover{background-color:#2563eb}.btn-secondary{background-color:#6b7280;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:background-color .2s}.btn-secondary:hover{background-color:#4b5563}.manage-users .delete-confirmation{padding:20px 0;text-align:center}.manage-users .delete-confirmation p{color:#374151;font-size:16px;margin:0 0 16px}.manage-users .delete-confirmation .user-info{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin:16px 0;padding:16px;text-align:left}.manage-users .delete-confirmation .user-info strong{color:#1f2937;display:block;font-size:18px;margin-bottom:8px}.manage-users .text-muted,.text-muted{color:#6b7280;font-size:14px;line-height:1.5}.manage-users .warning-text{color:#dc2626!important;font-size:14px;font-weight:600;margin-top:16px!important}.manage-users .action-buttons{display:flex;flex-wrap:wrap;gap:8px}.manage-users .action-buttons button{font-size:12px;padding:6px 12px;white-space:nowrap}@media (max-width:768px){.manage-users .action-buttons{flex-direction:column;gap:4px}.manage-users .action-buttons button{font-size:11px;padding:5px 8px}}.notification{border-radius:6px;font-size:14px;font-weight:500;margin-bottom:20px;padding:12px 16px}.notification.success{background-color:#d1fae5;border:1px solid #a7f3d0;color:#065f46}.notification.error{background-color:#fecaca;border:1px solid #f87171;color:#991b1b}.loading-container{padding:60px 20px}.loading-spinner{border-top-color:#3b82f6;margin-bottom:16px}.section-header{align-items:center;margin-bottom:24px}.section-header h1{color:#1f2937;font-size:24px;font-weight:600;margin:0}.section-header p{color:#6b7280;font-size:14px;margin:4px 0 0}@media (max-width:768px){.users-table-container{overflow-x:scroll}.action-buttons{flex-direction:row;flex-wrap:nowrap;gap:4px}.btn-icon{height:28px;min-width:28px;width:28px}.btn-edit,.btn-warning{margin:2px 0;width:100%}.permissions-grid{grid-template-columns:1fr}.compact-modal .form-grid-two-columns{gap:12px;grid-template-columns:1fr}.section-header{align-items:flex-start;flex-direction:column;gap:12px}.header-actions{flex-wrap:wrap;gap:6px;justify-content:flex-start;margin-left:0;width:100%}.header-actions .btn{flex:1 1;font-size:11px;max-width:120px;min-width:80px;overflow:hidden;padding:6px 8px;text-overflow:ellipsis;white-space:nowrap}@media (max-width:480px){.header-actions{flex-direction:column;width:100%}.header-actions .btn{align-items:center;display:flex;font-size:14px;gap:8px;justify-content:center;max-width:none;min-width:auto;padding:10px 16px;width:100%}}.modal-content{margin:10px;max-width:calc(100vw - 20px)}}.candidate-compact-layout{align-items:flex-start;background:#fff;box-sizing:border-box;display:flex;gap:1.5rem;margin:0;padding:1.5rem;width:100%}.candidate-photo-section{flex:0 0 140px;text-align:center}.candidate-photo-container{margin-bottom:1rem}.candidate-photo-compact{object-fit:cover}.candidate-photo-compact,.candidate-photo-placeholder-compact{border:3px solid #e2e8f0;border-radius:50%;box-shadow:0 4px 8px #0000001a;height:80px;width:80px}.candidate-photo-placeholder-compact{align-items:center;background:#f1f5f9;color:#64748b;display:flex;justify-content:center}.candidate-name-compact h3{color:#1e293b;font-size:1.1rem;font-weight:600;line-height:1.3;margin:0 0 .25rem}.candidate-name-compact p{color:#64748b;font-size:.875rem;font-weight:500;margin:0}.candidate-details-grid{grid-gap:.5rem;display:grid;flex:1 1;gap:.5rem;grid-template-columns:1fr 1fr;max-width:none;width:100%}.position-row{grid-column:1/-1}.detail-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;flex-direction:column;gap:.25rem;padding:.75rem;transition:all .2s ease}.detail-row:hover{background:#f1f5f9;border-color:#cbd5e1}.detail-row.highlight{background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff}.detail-row.highlight:hover{background:linear-gradient(135deg,#5a67d8,#6b46c1)}.detail-label{align-items:center;color:#475569;display:flex;font-size:.875rem;font-weight:500;gap:.5rem}.detail-row.highlight .detail-label{color:#fffffff2}.detail-icon{color:#667eea;font-size:.875rem}.detail-row.highlight .detail-icon{color:#fffffff2}.detail-value{align-items:center;color:#1e293b;display:flex;font-size:.875rem;font-weight:600;gap:.25rem}.detail-row.highlight .detail-value{color:#fff}.position-badge{background:linear-gradient(135deg,#2563eb,#1e40af);border-radius:20px;box-shadow:0 2px 4px #0000001a;color:#fff;font-size:.8rem;font-weight:700;letter-spacing:.5px;padding:.35rem 1rem;text-transform:uppercase}.candidate-view-modal-compact .modal-close{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#64748b;cursor:pointer;display:flex;font-size:.9rem;height:32px;justify-content:center;transition:all .2s ease;width:32px}.candidate-view-modal-compact .modal-close:hover{background:#ef4444;border-color:#ef4444;color:#fff;transform:scale(1.05)}.candidate-view-modal-compact .modal-footer{background:#fafbfc;border-top:1px solid #e2e8f0;margin:0;padding:1rem 1.5rem}.detail-row.highlight .gender-icon{color:#fff}@media (max-width:640px){.candidate-compact-layout{align-items:center;flex-direction:column;gap:1.5rem}.candidate-photo-section{flex:none}}.section-container{animation:fadeInUp .6s ease-out;box-sizing:border-box;margin:0;max-width:100%;padding:0 16px;width:100%}.section-header{align-items:flex-start;border-bottom:2px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:32px;padding-bottom:20px}.header-content{flex:1 1}.header-subtitle{display:flex;flex-direction:column;gap:4px}.last-updated{color:#6b7280;font-size:14px;gap:6px;margin-top:4px}.refresh-indicator{animation:pulse 1.5s ease-in-out infinite;color:#10b981;font-size:12px}.refresh-interval{color:#6b7280;font-size:11px;margin-left:8px;opacity:.8}.skeleton{animation:skeleton-loading 1.5s ease-in-out infinite alternate}@keyframes skeleton-loading{0%{opacity:1}to{opacity:.6}}.skeleton-line{animation:skeleton-shimmer 1.5s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;border-radius:4px;height:16px}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-name{margin-bottom:8px;width:60%}.skeleton-programme{margin-bottom:12px;width:80%}.skeleton-votes{width:40%}.skeleton-rank{width:30%}.skeleton-number{height:32px;margin-bottom:8px;width:50%}.skeleton-label{height:14px;width:70%}.skeleton-position-title{height:24px;margin-bottom:16px;width:30%}.skeleton-avatar{border-radius:50%;height:50px;width:50px}.skeleton-avatar,.skeleton-icon{animation:skeleton-shimmer 1.5s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%}.skeleton-icon{border-radius:6px;height:24px;width:24px}.skeleton-progress{animation:skeleton-shimmer 1.5s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;border-radius:2px;height:4px;margin-top:12px}.vote-count-animated{animation:vote-count-pulse .8s ease-in-out;font-weight:600}@keyframes vote-count-pulse{0%{transform:scale(1)}50%{background-color:#10b981;color:#fff;transform:scale(1.1)}to{transform:scale(1)}}.vote-count-zero{background-color:#f3f4f6;border-radius:12px;color:#9ca3af;font-size:12px;padding:2px 6px}.vote-count-low{background-color:#fee2e2;color:#ef4444}.vote-count-low,.vote-count-medium{border-radius:12px;font-size:12px;font-weight:500;padding:2px 6px}.vote-count-medium{background-color:#fef3c7;color:#f59e0b}.vote-count-high{background-color:#d1fae5;border-radius:12px;color:#10b981;font-size:12px;font-weight:600;padding:2px 6px}.header-actions{align-items:center;display:flex;gap:12px;margin-left:auto}.section-header h1{color:#093fb4;font-size:32px;font-weight:700;letter-spacing:-.5px;margin:0 0 8px}.section-header p{color:#666;font-size:16px;line-height:1.5;margin:0}.stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:32px}.stat-card{align-items:center;background:#fffcfb;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 4px 20px #00000014;display:flex;gap:12px;padding:16px;transition:all .3s ease}.stat-card:hover{box-shadow:0 8px 30px #0000001f;transform:translateY(-4px)}.stat-icon{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#093fb4,#0056d6);-webkit-background-clip:text;background-clip:text;background-size:200% 200%;filter:drop-shadow(0 2px 4px rgba(9,63,180,.2));font-size:28px}.stat-content h3{color:#093fb4;font-size:24px;font-weight:700;margin:0 0 4px}.stat-content p{color:#666;font-size:13px;font-weight:500;margin:0}.content-placeholder{background:#fffcfb;border:1px solid #e2e8f0;border-radius:20px;box-shadow:0 4px 20px #00000014;margin:0 auto;max-width:600px;padding:48px 40px;text-align:center}.placeholder-icon{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#093fb4,#0056d6);-webkit-background-clip:text;background-clip:text;background-size:200% 200%;filter:drop-shadow(0 4px 12px rgba(9,63,180,.2));font-size:64px;margin-bottom:20px}.content-placeholder h2{color:#093fb4;font-size:24px;font-weight:700;letter-spacing:-.5px;margin:0 0 12px}.content-placeholder p{color:#666;font-size:16px;line-height:1.6;margin:0 0 24px}.content-placeholder ul{list-style:none;margin:0 auto;max-width:400px;padding:0;text-align:left}.content-placeholder li{color:#555;font-size:14px;line-height:1.5;margin-bottom:8px;padding-left:20px;position:relative}.content-placeholder li:before{color:#093fb4;content:"✓";font-weight:700;left:0;position:absolute}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.system-info-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;margin-top:32px;padding:24px}.system-info-section h2{align-items:center;color:#1e293b;display:flex;font-size:20px;font-weight:600;gap:8px;margin:0 0 20px}.info-cards{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.info-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 8px #0000000a;padding:20px;transition:all .2s ease}.info-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.info-header{gap:12px;margin-bottom:12px}.info-header,.info-icon{align-items:center;display:flex}.info-icon{font-size:24px;justify-content:center}.info-title h3{color:#374151;font-size:16px;font-weight:600;margin:0 0 4px}.info-status{font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.info-description p{color:#6b7280;font-size:14px;line-height:1.5;margin:0}@media (max-width:768px){.section-container{padding:0 4px}.section-header h1{font-size:28px}.section-header p{font-size:14px}.stats-grid{gap:16px;grid-template-columns:1fr;margin-bottom:32px}.stat-card{padding:20px}.stat-icon{font-size:28px}.stat-content h3{font-size:24px}.content-placeholder{margin:0 16px;padding:32px 24px}.placeholder-icon{font-size:48px}.content-placeholder h2{font-size:20px}.content-placeholder p{font-size:14px}}.header-with-icon{align-items:center;display:flex;gap:16px}.status-card{background:#fffcfb;border:1px solid #e2e8f0;border-radius:12px;display:flex;flex-direction:column;gap:12px;margin-bottom:32px;padding:20px}.status-indicator{align-items:center;display:flex;font-size:14px;font-weight:500;gap:8px}.status-text{color:#374151}.form-section{background:#fffcfb;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 2px 12px #0000000a;margin-bottom:32px;padding:32px}.form-header{border-bottom:1px solid #e2e8f0;margin-bottom:24px;padding-bottom:16px}.form-header h2{color:#093fb4;font-size:20px;font-weight:600}.form-grid{grid-gap:24px;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:32px}.form-group{gap:8px}.form-group.full-width{grid-column:1/-1}.form-group label{align-items:center;display:flex;font-size:14px;font-weight:600;gap:8px}.form-input,.form-textarea{background:#fff;border:2px solid #e2e8f0;border-radius:8px;font-size:16px;padding:12px 16px;transition:all .3s ease}.form-input:focus,.form-textarea:focus{border-color:#093fb4;box-shadow:0 0 0 3px #093fb41a;outline:none}.form-textarea{font-family:inherit;min-height:80px;resize:vertical}.form-hint{color:#6b7280;font-size:12px;font-style:italic}.form-actions{display:flex;flex-wrap:wrap;gap:16px}.btn{border:none;display:flex;font-weight:600;gap:8px;padding:12px 24px;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,#093fb4,#0056d6)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#0830a0,#004bc2);box-shadow:0 4px 12px #093fb44d;transform:translateY(-2px)}.btn-secondary{border:2px solid #093fb4;color:#093fb4}.btn-secondary:hover:not(:disabled){background:#093fb4;box-shadow:0 4px 12px #093fb433;color:#fff;transform:translateY(-2px)}.info-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:32px;padding:24px}.info-section h3{color:#093fb4;font-size:18px;font-weight:600;margin:0 0 16px}.info-section p{color:#374151;line-height:1.6;margin:0 0 16px}.code-block{background:#1f2937;border-radius:8px;margin:16px 0;padding:16px}.code-block pre{word-wrap:break-word;color:#f3f4f6;font-family:Courier New,monospace;font-size:13px;line-height:1.5;margin:0;white-space:pre-wrap}.info-note{align-items:center;background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;color:#92400e;display:flex;font-size:14px;gap:8px;margin-top:16px;padding:12px 16px}.text-green-500{color:#10b981}.text-red-500{color:#ef4444}.text-yellow-500{color:#f59e0b}.text-gray-500{color:#6b7280}.text-blue-600{color:#2563eb}.text-blue-500{color:#3b82f6}.text-purple-500{color:#8b5cf6}.target-summary{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;margin-top:24px;padding:16px}.summary-item{align-items:center;color:#0369a1;display:flex;font-size:14px;font-weight:500;gap:8px}.status-section{background:#fff;border:2px solid #e2e8f0;border-radius:12px;margin-bottom:32px;padding:24px}.status-section.success{background:#f0fdf4;border-color:#10b981}.status-section.error{background:#fef2f2;border-color:#ef4444}.status-content{align-items:center;display:flex;gap:16px}.status-content h3{color:#093fb4;font-size:18px;font-weight:600;margin:0 0 8px}.status-content p{color:#6b7280;font-size:14px;line-height:1.5;margin:0}.guidelines-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:20px 0}.guideline-item{align-items:flex-start;background:#fff;border:1px solid #e2e8f0;border-radius:8px;display:flex;gap:12px;padding:16px}.guideline-item h4{color:#093fb4;font-size:14px;font-weight:600;margin:0 0 4px}.guideline-item p{color:#6b7280;font-size:13px;line-height:1.4;margin:0}.info-features{display:flex;flex-direction:column;gap:16px;margin:24px 0}.feature-item{align-items:flex-start;background:#fff;border:1px solid #e2e8f0;border-radius:8px;display:flex;gap:16px;padding:16px}.feature-item h4{color:#093fb4;font-size:16px;font-weight:600;margin:0 0 8px}.feature-item p{color:#6b7280;font-size:14px;line-height:1.5;margin:0}.info-steps{flex-direction:column;margin:20px 0}.info-steps,.step{display:flex;gap:16px}.step{align-items:flex-start;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:16px}.step-number{background:linear-gradient(135deg,#093fb4,#0056d6);font-size:14px;height:32px;width:32px}.step-content h4{color:#093fb4;font-size:16px;font-weight:600;margin:0 0 8px}.step-content p{color:#6b7280;font-size:14px;line-height:1.5}.current-values{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-top:24px;padding:20px}.current-values h4{color:#093fb4;font-size:16px;font-weight:600;margin:0 0 16px}.config-display{display:flex;flex-direction:column;gap:12px}.config-item{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;padding:12px 0}.config-item:last-child{border-bottom:none}.config-label{color:#374151;font-size:14px;font-weight:600}.config-value{background:#f9fafb;border-radius:4px;color:#6b7280;font-family:Courier New,monospace;font-size:14px;max-width:300px;overflow:hidden;padding:4px 8px;text-overflow:ellipsis;white-space:nowrap}@media (max-width:480px){.section-header{margin-bottom:24px;padding-bottom:16px}.section-header h1{font-size:24px}.content-placeholder{margin:0 8px;padding:24px 20px}.form-section{margin:0 8px 24px;padding:20px}.form-grid{gap:16px;grid-template-columns:1fr}.form-actions{flex-direction:column}.btn{justify-content:center}.header-with-icon{gap:12px}.config-item,.header-with-icon{align-items:flex-start;flex-direction:column}.config-item{gap:8px}.config-value{max-width:100%}.feature-item,.step{align-items:center;flex-direction:column;gap:12px;text-align:center}.guidelines-grid{grid-template-columns:1fr}.guideline-item{gap:8px}.guideline-item,.status-content{align-items:center;flex-direction:column;text-align:center}.status-content{gap:12px}}.toggle-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:16px;padding:24px}.toggle-info{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:24px}.toggle-description h3{color:#2d3748;font-size:18px;font-weight:600;margin:0 0 8px}.toggle-description p{color:#4a5568;font-size:14px;line-height:1.5;margin:0;max-width:500px}.mutual-exclusive-warning{align-items:center;background:#fef5e7;border:1px solid #f6ad55;border-radius:6px;color:#c05621;display:flex;font-size:12px;gap:8px;line-height:1.4;margin-top:8px;padding:8px 12px}.toggle-control{align-items:center;display:flex;flex-shrink:0;gap:12px}.toggle-switch{display:inline-block;height:34px;position:relative;width:60px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{background-color:#cbd5e0;border-radius:34px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.3s}.toggle-slider:before{background-color:#fff;border-radius:50%;bottom:4px;box-shadow:0 2px 4px #0003;content:"";height:26px;left:4px;position:absolute;transition:.3s;width:26px}input:checked+.toggle-slider{background:linear-gradient(135deg,#48bb78,#38a169)}input:checked+.toggle-slider:before{transform:translateX(26px)}input:disabled+.toggle-slider{cursor:not-allowed;opacity:.6}.toggle-status{font-size:14px;font-weight:600;min-width:80px}.toggle-status.enabled{color:#38a169}.toggle-status.disabled{color:#e53e3e}.verification-impact{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 1fr;margin-top:24px}.impact-section h4{color:#2d3748;font-size:16px;font-weight:600;margin:0 0 12px}.impact-section ul{color:#4a5568;font-size:14px;line-height:1.6;margin:0;padding-left:16px}.impact-section li{margin-bottom:6px}.last-updated{align-items:center;border-top:1px solid #e2e8f0;color:#718096;display:flex;font-size:12px;gap:8px;margin-top:16px;padding-top:16px}.admin-otp-workflow{border-top:1px solid #e2e8f0;margin-top:24px;padding-top:24px}.admin-otp-workflow h4{color:#2d3748;font-size:16px;font-weight:600;margin:0 0 16px}.workflow-steps{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.workflow-step{align-items:flex-start;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;gap:12px;padding:16px}.step-number{align-items:center;background:linear-gradient(135deg,#805ad5,#6b46c1);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:12px;font-weight:600;height:24px;justify-content:center;width:24px}.step-content h5{color:#2d3748;font-size:14px;font-weight:600;margin:0 0 4px}.step-content p{color:#4a5568;font-size:12px;line-height:1.4;margin:0}@media (max-width:768px){.workflow-steps{grid-template-columns:1fr}}.offline-message-preview{border-top:1px solid #e2e8f0;margin-top:20px;padding:16px 0}.offline-message-preview h4{color:#374151;font-size:14px;font-weight:600;margin:0 0 12px}.message-preview{align-items:flex-start;background:#fef2f2;border:1px solid #fecaca;border-left:4px solid #ef4444;border-radius:8px;display:flex;gap:12px;padding:16px}.message-preview strong{color:#dc2626;display:block;font-size:15px;font-weight:600;margin-bottom:4px}.message-preview p{color:#7f1d1d;font-size:14px;line-height:1.4;margin:0}.access-code-modal{max-width:500px;width:90%}.access-code-info{align-items:flex-start;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;display:flex;gap:16px;margin-bottom:24px;padding:16px}.access-code-info h3{color:#1e40af;font-size:16px;font-weight:600;margin:0 0 4px}.access-code-info p{color:#1e40af;font-size:14px;line-height:1.5;margin:0}.current-code-display{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;display:flex;justify-content:space-between;margin-bottom:20px;padding:12px 16px}.current-code-display label{color:#374151;font-weight:500;margin:0}.current-code{color:#6b7280;font-family:Courier New,monospace;font-weight:600;letter-spacing:2px}.access-code-modal .modal-close-btn{align-items:center;background:#0000;border:none;border-radius:6px;color:#9ca3af;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;line-height:1;padding:4px;position:absolute;right:16px;top:16px;transition:all .2s ease;width:32px;z-index:10}.access-code-modal .modal-close-btn:hover{background:#f3f4f6;color:#374151;transform:scale(1.1)}.access-code-modal .modal-close-btn:active{background:#e5e7eb;transform:scale(.95)}.access-code-modal .modal-close-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.access-code-modal .modal-close-btn:disabled:hover{background:#0000;color:#9ca3af}.code-match-indicator{border-radius:6px;font-size:14px;font-weight:500;margin-top:8px;padding:8px 12px;text-align:center}.code-match-indicator.match{background:#dcfce7;border:1px solid #bbf7d0;color:#166534}.code-match-indicator.no-match{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}@media (max-width:768px){.toggle-info{align-items:flex-start;flex-direction:column;gap:16px}.toggle-control{align-self:stretch;justify-content:space-between}.verification-impact{gap:16px;grid-template-columns:1fr}}.action-bar{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 8px #0000001a;gap:12px;justify-content:space-between;margin-bottom:20px;padding:16px}.action-bar,.action-left{align-items:center;display:flex;flex-wrap:wrap}.action-left{gap:16px}.action-right{gap:12px}.action-right,.search-section{align-items:center;display:flex}.search-section{flex:1 1;gap:10px;min-width:250px}.search-input-container{flex:1 1;max-width:350px;position:relative}.search-input{border:1px solid #d1d5db;border-radius:8px;font-size:14px;padding:10px 12px 10px 40px;transition:all .2s ease;width:100%}.search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.action-buttons{align-items:center;gap:8px}.btn{align-items:center;border:1px solid #0000;border-radius:8px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:6px;padding:8px 16px;text-decoration:none;transition:all .2s ease}.btn-primary{background:#3b82f6;border-color:#3b82f6;color:#fff}.btn-primary:hover{background:#2563eb;border-color:#2563eb}.btn-secondary{background:#fff;border-color:#d1d5db;color:#374151}.btn-secondary:hover{background:#f9fafb;border-color:#9ca3af}.btn-secondary.active{background:#eff6ff;border-color:#3b82f6;color:#3b82f6}.btn-outline{background:#0000;border-color:#d1d5db;color:#6b7280}.btn-outline:hover{background:#f9fafb;color:#374151}.btn-danger{background-color:#dc2626;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:6px 12px;transition:background-color .2s}.btn-danger:hover{background-color:#b91c1c}.btn-sm{font-size:13px;padding:6px 12px}.btn:disabled{opacity:.5}.filters-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:24px;padding:20px}.filters-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:16px}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-group label{color:#374151;font-size:13px;font-weight:500}.filter-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:14px;padding:8px 12px}.filter-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.filter-actions{align-items:center;border-top:1px solid #e2e8f0;display:flex;justify-content:space-between;padding-top:16px}.filter-results{color:#6b7280;font-size:13px;font-weight:500}.bulk-actions{align-items:center;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;display:flex;gap:12px;margin-bottom:16px;padding:12px 16px}.bulk-info{color:#1e40af;font-size:14px;font-weight:500}.bulk-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:13px;padding:6px 10px}.table-container{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.table-wrapper{max-width:100%;overflow-x:auto}.voters-table{border-collapse:collapse;table-layout:fixed;width:100%}.voters-table td:first-child,.voters-table th:first-child{width:40px}.voters-table td:nth-child(2),.voters-table th:nth-child(2){width:90px}.voters-table td:nth-child(3),.voters-table th:nth-child(3){width:140px}.voters-table td:nth-child(4),.voters-table th:nth-child(4){width:120px}.voters-table td:nth-child(5),.voters-table td:nth-child(6),.voters-table td:nth-child(7),.voters-table th:nth-child(5),.voters-table th:nth-child(6),.voters-table th:nth-child(7){width:60px}.voters-table td:nth-child(8),.voters-table th:nth-child(8){width:120px}.voters-table td:nth-child(9),.voters-table th:nth-child(9){width:80px}.voters-table td:nth-child(10),.voters-table th:nth-child(10){width:100px}.voters-table th{background:#f8fafc;border-bottom:1px solid #e2e8f0;color:#374151;font-size:12px;font-weight:600;text-align:left}.voters-table td,.voters-table th{padding:10px 12px;white-space:nowrap}.voters-table td{border-bottom:1px solid #f1f5f9;font-size:13px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.voter-row:hover{background:#f8fafc}.voter-name{min-width:120px}.name{color:#1f2937;font-weight:500}.status-badge{border-radius:12px;display:inline-block;font-size:11px;font-weight:600;letter-spacing:.5px;padding:4px 8px;text-transform:uppercase}.status-badge.voted{background:#dcfce7;color:#166534}.status-badge.not-voted{background:#fef3c7;color:#92400e}.action-buttons-cell{align-items:center;display:flex;gap:4px}.btn-icon{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#6b7280;cursor:pointer;display:inline-flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.btn-icon svg{height:18px!important;margin:0;min-height:18px;min-width:18px;width:18px!important}.btn-icon:hover{background:#f9fafb;border-color:#9ca3af;color:#374151}.btn-icon.danger:hover{background:#fef2f2;border-color:#fca5a5;color:#dc2626}.checkbox{cursor:pointer;height:16px;width:16px}.empty-state,.loading-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:48px 24px;text-align:center}.empty-state p,.loading-state p{color:#6b7280;margin-top:12px}.empty-state h3{color:#374151;margin:12px 0 8px}.font-mono{font-family:Courier New,monospace;font-weight:600}.capitalize{text-transform:capitalize}@media (max-width:1024px){.section-container{padding:0 12px}.action-bar{align-items:stretch;flex-direction:column;padding:12px}.search-section{min-width:auto}.action-buttons{justify-content:center}.filters-grid{gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}@media (max-width:768px){.stats-grid{gap:12px;grid-template-columns:repeat(2,1fr)}.stat-card{padding:12px}.voters-table{font-size:12px}.voters-table td,.voters-table th{padding:6px 8px}.voters-table td:nth-child(3),.voters-table th:nth-child(3){width:100px}.voters-table td:nth-child(4),.voters-table th:nth-child(4){width:80px}.voters-table td:nth-child(8),.voters-table th:nth-child(8){width:100px}.action-buttons-cell{flex-direction:row;flex-wrap:nowrap;gap:4px}.btn-icon{height:28px;width:28px}.action-bar .action-buttons{flex-wrap:wrap;gap:8px;justify-content:center}.action-bar .action-buttons .btn{flex:1 1;font-size:13px;max-width:140px;min-width:100px;padding:8px 12px}}@media (max-width:640px){.stats-grid{grid-template-columns:1fr}.bulk-actions{gap:8px}.bulk-actions,.filter-actions{align-items:stretch;flex-direction:column}.filter-actions{gap:12px}.action-bar .action-buttons{flex-direction:column;gap:6px;width:100%}.action-bar .action-buttons .btn{justify-content:center;max-width:none;min-width:auto;width:100%}}@media (max-width:480px){.action-bar{gap:8px;padding:12px}.search-section{min-width:auto;width:100%}.search-input-container{max-width:none}.action-bar .action-buttons .btn{font-size:12px;padding:10px 16px}}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:8px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:480px;overflow:hidden;width:100%}.modal-content.large{max-width:600px}.modal-content.extra-large{max-width:800px}.modal-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;padding:12px 16px}.modal-header,.modal-title{align-items:center;display:flex}.modal-title{gap:6px}.modal-title h2{color:#1f2937;font-size:15px;font-weight:600;margin:0}.modal-body{flex:1 1;overflow-y:auto;padding:16px}.modal-footer{background:#f8fafc;border-top:1px solid #e2e8f0;display:flex;gap:8px;justify-content:flex-end;padding:12px 16px}.form-grid{grid-gap:12px;gap:12px}.form-group{display:flex;flex-direction:column;gap:3px}.form-group label{color:#374151;font-size:12px;font-weight:500;margin-bottom:2px}.required{color:#dc2626}.form-input{border:1px solid #d1d5db;border-radius:4px;font-size:13px;padding:6px 8px;transition:all .2s ease}.form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-input.error{background:#fef2f2}.error-text{font-size:12px}.import-instructions{background:#f8fafc;border-radius:8px;margin-bottom:24px;padding:20px;text-align:center}.instruction-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000000d;margin-bottom:32px;padding:20px;text-align:left}.instruction-section h3{align-items:center;color:#093fb4;display:flex;font-size:18px;font-weight:600;gap:8px;margin-bottom:16px}.instruction-section ol{color:#374151;font-size:14px;line-height:1.7;margin:0;padding-left:20px}.instruction-section ol li{font-weight:500;margin-bottom:12px}.instruction-section ul{color:#6b7280;font-size:13px;line-height:1.6;margin:12px 0;padding-left:24px}.instruction-section ul li{margin-bottom:8px;position:relative}.instruction-section ul li strong{color:#374151;font-weight:600}.sample-download{background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;margin-bottom:32px;padding:20px;text-align:center}.file-upload-area{background:#fafbfc;border:2px dashed #cbd5e0;border-radius:16px;padding:48px 24px;text-align:center;transition:all .3s ease}.file-upload-area:hover{background:#f0f7ff;border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626;transform:translateY(-2px)}.file-input{display:none}.file-upload-label{align-items:center;color:#6b7280;cursor:pointer;display:flex;flex-direction:column;gap:16px}.file-upload-label span{color:#093fb4;font-size:18px;font-weight:600}.file-upload-label small{color:#9ca3af;font-size:14px;font-weight:500}.preview-table-container{border:1px solid #e2e8f0;border-radius:8px;margin:16px 0;max-height:400px;overflow:auto}.preview-table{border-collapse:collapse;font-size:13px;width:100%}.preview-table th{background:#f8fafc;border-bottom:1px solid #e2e8f0;color:#374151;font-weight:600;padding:8px 12px;position:sticky;top:0;white-space:nowrap}.preview-table td{border-bottom:1px solid #f1f5f9;padding:8px 12px;white-space:nowrap}.error-row{background:#fef2f2}.valid-row{background:#f0fdf4}.status-error{color:#dc2626}.status-error,.status-valid{align-items:center;display:flex;font-size:12px;gap:4px}.status-valid{color:#16a34a}.preview-note{background:#f8fafc;color:#6b7280;font-size:13px;padding:12px}.import-results,.preview-note{text-align:center}.results-summary{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;margin:24px 0}.result-item{align-items:center;border-radius:8px;display:flex;font-weight:500;gap:8px;padding:12px 16px}.result-item.success{background:#dcfce7;color:#166534}.result-item.error{background:#fef2f2;color:#dc2626}.result-item.warning{background:#fef3c7;color:#92400e}.error-details{margin-top:24px;max-height:300px;overflow-y:auto;text-align:left}.error-details h4{color:#1f2937;margin-bottom:12px}.error-list{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:16px}.error-item{border-bottom:1px solid #e2e8f0;margin-bottom:12px;padding-bottom:12px}.error-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.error-item strong{color:#dc2626;display:block;margin-bottom:4px}.error-item ul{color:#6b7280;font-size:13px;margin:0;padding-left:16px}@media (max-width:768px){.modal-overlay{padding:12px}.modal-content,.modal-content.extra-large,.modal-content.large{max-width:100%}.modal-header{padding:10px 12px}.modal-body{padding:12px}.form-grid{gap:8px;grid-template-columns:1fr}.results-summary{align-items:center;flex-direction:column;gap:12px}}.voter-details{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.detail-group{display:flex;flex-direction:column;gap:4px}.detail-group label{color:#6b7280;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.detail-value{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;color:#1f2937;font-size:14px;font-weight:500;padding:8px 12px}.status-toggle-container{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;gap:12px;margin:16px 0;padding:12px 16px}.status-toggle-info{flex:1 1}.status-toggle-info h4{color:#374151;font-size:14px;font-weight:600;margin:0 0 4px}.status-toggle-info p{color:#6b7280;font-size:12px;line-height:1.4;margin:0}.status-toggle-switch{align-items:center;display:flex;gap:8px}.toggle-button{display:inline-block;height:24px;position:relative;width:48px}.toggle-button input{height:0;opacity:0;width:0}.toggle-slider-small{background-color:#cbd5e0;border-radius:24px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.3s}.toggle-slider-small:before{background-color:#fff;border-radius:50%;bottom:3px;box-shadow:0 1px 3px #0003;content:"";height:18px;left:3px;position:absolute;transition:.3s;width:18px}input:checked+.toggle-slider-small{background:linear-gradient(135deg,#48bb78,#38a169)}input:checked+.toggle-slider-small:before{transform:translateX(24px)}input:disabled+.toggle-slider-small{cursor:not-allowed;opacity:.6}.toggle-status-text{font-size:12px;font-weight:600;min-width:60px}.toggle-status-text.active{color:#38a169}.toggle-status-text.inactive{color:#e53e3e}.confirmation-dialog{max-width:400px}.confirmation-content{padding:20px 0;text-align:center}.confirmation-icon{margin-bottom:16px}.confirmation-title{color:#1f2937;font-size:18px;font-weight:600;margin:0 0 8px}.confirmation-message{color:#6b7280;font-size:14px;line-height:1.5;margin:0 0 16px}.confirmation-details{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin:16px 0;padding:12px;text-align:left}.confirmation-details strong{color:#374151;font-weight:600}.danger-action .confirmation-icon,.danger-action .confirmation-title{color:#dc2626}@media (max-width:768px){.voter-details{gap:12px;grid-template-columns:1fr}.status-toggle-container{align-items:stretch;flex-direction:column;gap:12px}.status-toggle-switch{justify-content:space-between}}.pagination-container{background:#fffcfb;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:16px;padding:16px}.pagination-container.top{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:16px}.pagination-container.bottom{border-top:none;border-top-left-radius:0;border-top-right-radius:0;margin-top:0}.pagination-info{color:#666;font-weight:500}.pagination-controls{gap:12px}.items-per-page{align-items:center;color:#666;display:flex;gap:8px}.items-per-page-select{background:#fff;border:1px solid #e2e8f0;border-radius:4px;color:#333;cursor:pointer;font-size:14px;padding:4px 8px}.items-per-page-select:focus{border-color:#093fb4;box-shadow:0 0 0 2px #093fb41a;outline:none}.page-btn,.page-numbers{align-items:center}.page-btn{display:flex;height:32px;justify-content:center}.pagination-btn{gap:4px;height:32px;padding:6px 12px}.pagination-ellipsis{color:#666;font-size:14px;padding:0 4px}@media (max-width:768px){.pagination-container{align-items:stretch;flex-direction:column;gap:12px}.pagination-controls{flex-wrap:wrap;justify-content:center}.page-numbers{order:1}.items-per-page{justify-content:center;order:2}.pagination-btn{flex:1 1;max-width:120px;order:0}}@media (max-width:480px){.page-numbers{gap:2px}.page-btn{min-width:32px}.page-btn,.pagination-btn{font-size:12px;height:28px}.pagination-btn{padding:4px 8px}.pagination-ellipsis{font-size:12px;padding:0 2px}}.candidate-avatar{border:2px solid #e2e8f0;height:32px;margin-right:8px;object-fit:cover;width:32px}.candidate-avatar-placeholder{align-items:center;background:#f3f4f6;border:2px solid #e2e8f0;border-radius:50%;color:#9ca3af;display:flex;flex-shrink:0;font-size:14px;height:32px;justify-content:center;margin-right:8px;width:32px}.photo-cell{padding:8px!important;text-align:center}.photo-cell .candidate-avatar,.photo-cell .candidate-avatar-placeholder{margin:0 0 0 auto}.candidate-id{border-radius:4px;font-family:Courier New,monospace;font-weight:600}.candidate-id,.position-cell{font-size:12px;padding:4px 8px}.position-cell{background:#ebf4ff;border-radius:6px;color:#093fb4;display:inline-block;font-weight:500}.status-badge.active{background:#dcfce7;border:1px solid #bbf7d0;color:#166534}.status-badge.inactive{background:#fee2e2;border:1px solid #fecaca;color:#dc2626}.stat-icon.candidates{background:#0000;color:#6366f1}.stat-icon.positions{background:#0000;color:#f59e0b}.candidates-table{border-collapse:collapse;min-width:1000px;table-layout:fixed;width:100%}.candidates-table td,.candidates-table th{border-bottom:1px solid #f1f5f9;font-size:13px;overflow:hidden;padding:10px 12px;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.candidates-table th{background:#f8fafc;border-bottom:1px solid #e2e8f0;color:#374151;font-size:12px;font-weight:600;text-align:left;white-space:nowrap}.candidates-table.has-checkbox td:first-child,.candidates-table.has-checkbox th:first-child{width:50px}.candidates-table.has-checkbox td:nth-child(2),.candidates-table.has-checkbox th:nth-child(2){width:80px}.candidates-table.has-checkbox td:nth-child(3),.candidates-table.has-checkbox th:nth-child(3){width:110px}.candidates-table.has-checkbox td:nth-child(4),.candidates-table.has-checkbox th:nth-child(4){width:180px}.candidates-table.has-checkbox td:nth-child(5),.candidates-table.has-checkbox th:nth-child(5){width:80px}.candidates-table.has-checkbox td:nth-child(6),.candidates-table.has-checkbox th:nth-child(6){width:140px}.candidates-table.has-checkbox td:nth-child(7),.candidates-table.has-checkbox th:nth-child(7){width:90px}.candidates-table.has-checkbox td:nth-child(8),.candidates-table.has-checkbox th:nth-child(8){width:130px}.candidates-table.has-checkbox td:nth-child(9),.candidates-table.has-checkbox th:nth-child(9){width:140px}.candidates-table:not(.has-checkbox) td:first-child,.candidates-table:not(.has-checkbox) th:first-child{width:80px}.candidates-table:not(.has-checkbox) td:nth-child(2),.candidates-table:not(.has-checkbox) th:nth-child(2){width:110px}.candidates-table:not(.has-checkbox) td:nth-child(3),.candidates-table:not(.has-checkbox) th:nth-child(3){width:200px}.candidates-table:not(.has-checkbox) td:nth-child(4),.candidates-table:not(.has-checkbox) th:nth-child(4){width:80px}.candidates-table:not(.has-checkbox) td:nth-child(5),.candidates-table:not(.has-checkbox) th:nth-child(5){width:160px}.candidates-table:not(.has-checkbox) td:nth-child(6),.candidates-table:not(.has-checkbox) th:nth-child(6){width:90px}.candidates-table:not(.has-checkbox) td:nth-child(7),.candidates-table:not(.has-checkbox) th:nth-child(7){width:130px}.candidates-table:not(.has-checkbox) td:nth-child(8),.candidates-table:not(.has-checkbox) th:nth-child(8){width:140px}.filters-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px;padding:20px}.search-box{margin-bottom:16px;position:relative}.search-box input{background:#fafafa;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;padding:12px 16px 12px 40px;transition:all .2s ease;width:100%}.search-box input:focus{background:#fff;border-color:#093fb4;box-shadow:0 0 0 3px #093fb41a;outline:none}.search-icon{color:#9ca3af;font-size:16px;left:12px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.filters-row{grid-gap:16px;align-items:center;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.filters-row select{appearance:none;background:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;border:2px solid #e2e8f0;border-radius:8px;color:#374151;cursor:pointer;font-size:14px;padding:12px 40px 12px 16px;transition:all .2s ease}.filters-row select:focus{border-color:#093fb4;box-shadow:0 0 0 3px #093fb41a;outline:none}.filters-row select:hover{border-color:#9ca3af}.clear-filters-btn{align-items:center;background:#fff!important;border:2px solid #e2e8f0!important;color:#6b7280!important;display:flex;font-size:14px!important;gap:6px;min-width:fit-content;padding:12px 16px!important;white-space:nowrap}.clear-filters-btn:hover{background:#fef2f2!important;border-color:#f87171!important;color:#ef4444!important}.pagination-container{align-items:center;background:#fff;border-radius:0 0 12px 12px;border-top:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-top:-1px;padding:20px}.pagination-info{color:#6b7280;gap:16px}.items-per-page{background:#fff;border:2px solid #e2e8f0;border-radius:6px;color:#374151;cursor:pointer;font-size:14px;padding:8px 12px;transition:all .2s ease}.items-per-page:focus{border-color:#093fb4;box-shadow:0 0 0 3px #093fb41a;outline:none}.pagination-controls{align-items:center;display:flex;gap:8px}.pagination-controls .btn{align-items:center;display:flex;font-size:14px;gap:6px;padding:8px 16px}.page-numbers{display:flex;gap:4px;margin:0 8px}.page-btn{background:#fff;border:2px solid #e2e8f0;border-radius:6px;color:#374151;cursor:pointer;font-size:14px;font-weight:500;min-width:40px;padding:8px 12px;transition:all .2s ease}.page-btn:hover{background:#f8fafc;border-color:#093fb4;color:#093fb4}.page-btn.active{background:#093fb4;border-color:#093fb4;color:#fff}.page-btn:disabled{cursor:not-allowed;opacity:.5}@media (max-width:768px){.filters-section{padding:16px}.filters-row{gap:12px;grid-template-columns:1fr}.search-box input{font-size:13px;padding:10px 14px 10px 36px}.filters-row select{font-size:13px;padding:10px 36px 10px 14px}.pagination-container{flex-direction:column;gap:16px;padding:16px}.pagination-info{flex-direction:column;gap:8px;text-align:center}.pagination-controls{flex-wrap:wrap;justify-content:center}.page-numbers{margin:0 0 8px;order:-1}}.spinning{animation:spin 1s linear infinite}.table-refreshing{opacity:.6;transition:opacity .3s ease}.table-wrapper.refreshing{opacity:.7;pointer-events:none;transition:opacity .3s ease}.candidate-profile{display:flex;flex-direction:column;gap:24px}.candidate-photo-section{align-items:center;background:#f8fafc;border-radius:12px;display:flex;flex-direction:column;gap:16px;padding:24px}.candidate-photo{object-fit:cover}.candidate-photo,.candidate-photo-placeholder{border:4px solid #fff;border-radius:50%;box-shadow:0 8px 24px #00000026;height:120px;width:120px}.candidate-photo-placeholder{align-items:center;background:#e2e8f0;color:#9ca3af;display:flex;justify-content:center}.candidate-name-header{text-align:center}.candidate-name-header h3{color:#1f2937;font-size:24px;font-weight:600;margin:0 0 8px}.status-badge.large{border-radius:20px;font-size:14px;padding:8px 16px}.gender-display{align-items:center;display:flex;gap:6px}.gender-icon{font-size:14px}.gender-icon.male{color:#3b82f6}.gender-icon.female{color:#ec4899}.position-display{background:#ebf4ff;border-radius:6px;color:#093fb4;font-weight:500;padding:4px 8px}.status-text.active{color:#059669}.status-text.inactive{color:#dc2626}.image-upload-section{align-items:center;display:flex;flex-direction:column;gap:16px}.image-preview{align-items:center;border:2px dashed #d1d5db;border-radius:12px;display:flex;height:120px;justify-content:center;overflow:hidden;width:120px}.preview-image{height:100%;object-fit:cover;width:100%}.image-placeholder{align-items:center;color:#9ca3af;display:flex;flex-direction:column;gap:8px;text-align:center}.image-placeholder p{font-size:12px;margin:0}.upload-controls{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.upload-btn{align-items:center;background:#093fb4;border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;padding:10px 16px;transition:all .2s ease}.upload-btn:hover{background:#0730a3;transform:translateY(-1px)}.form-grid{grid-gap:32px;display:grid;gap:32px;grid-template-columns:1fr 1fr}.form-section{display:flex;flex-direction:column;gap:16px}.form-section h3{border-bottom:2px solid #e5e7eb;color:#1f2937;font-size:18px;font-weight:600;margin:0;padding-bottom:8px}.checkbox-group,.checkbox-label{align-items:center;display:flex}.checkbox-label{cursor:pointer;font-weight:500;gap:8px}.checkbox-label input[type=checkbox]{accent-color:#093fb4;height:18px;width:18px}@media (max-width:768px){.form-grid{gap:24px;grid-template-columns:1fr}.candidate-photo-section{padding:16px}.candidate-photo,.candidate-photo-placeholder,.image-preview{height:100px;width:100px}.data-table{font-size:12px}.data-table td,.data-table th{padding:8px 12px}.data-table td:first-child,.data-table th:first-child{width:40px}.data-table td:nth-child(2),.data-table th:nth-child(2){width:80px}.data-table td:nth-child(3),.data-table th:nth-child(3){width:120px}.data-table td:nth-child(4),.data-table th:nth-child(4){width:60px}.data-table td:nth-child(5),.data-table th:nth-child(5){width:100px}.data-table td:nth-child(6),.data-table th:nth-child(6){width:60px}.data-table td:nth-child(7),.data-table th:nth-child(7){width:90px}.data-table td:nth-child(8),.data-table th:nth-child(8){width:80px}.data-table td:nth-child(9),.data-table th:nth-child(9){width:100px}.action-buttons{gap:4px}.btn-icon{font-size:12px;height:28px;width:28px}.candidate-avatar{height:24px;width:24px}.candidate-name .name-cell{gap:6px}.status-badge{font-size:10px;min-width:60px;padding:4px 8px}.position-cell{font-size:11px;padding:2px 6px}}.edit-candidate-modal-compact{background:#fff;border-radius:12px;box-shadow:0 10px 25px #00000026;box-sizing:border-box;margin:0 auto;max-height:85vh!important;max-width:800px!important;overflow:hidden;padding:0!important;width:95%!important}.edit-candidate-modal-compact .modal-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin:0;padding:1rem 1.5rem}.edit-candidate-modal-compact .modal-header h2{align-items:center;color:#1e293b;display:flex;font-size:1.25rem;gap:.5rem;margin:0}.edit-candidate-modal-compact .modal-close{align-items:center;background:none;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;font-size:1.25rem;justify-content:center;padding:.5rem;transition:all .2s ease}.edit-candidate-modal-compact .modal-close:hover{background:#f3f4f6;color:#ef4444;transform:scale(1.1)}.edit-candidate-modal-compact .modal-close:active{transform:scale(.95)}.edit-form-grid{grid-gap:1.5rem;background:#fff;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr 1fr;max-height:60vh;overflow-y:auto;padding:1.5rem}.form-column{display:flex;flex-direction:column;gap:.75rem}.form-column h3{border-bottom:2px solid #e5e7eb;color:#374151;font-size:1rem;font-weight:600;margin:0 0 .5rem;padding-bottom:.5rem}.form-column .form-group{margin-bottom:.75rem}.form-column .form-group label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.form-column .form-group input,.form-column .form-group select{border:1px solid #d1d5db;border-radius:6px;box-sizing:border-box;font-size:.875rem;padding:.5rem;transition:border-color .2s ease;width:100%}.form-column .form-group input:focus,.form-column .form-group select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.image-upload-compact{align-items:center;display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.image-preview-compact{align-items:center;background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;display:flex;height:80px;justify-content:center;overflow:hidden;width:80px}.preview-image-compact{height:100%;object-fit:cover;width:100%}.image-placeholder-compact{align-items:center;color:#9ca3af;display:flex;height:100%;justify-content:center;width:100%}.upload-controls-compact{align-items:center;display:flex;flex-direction:column;gap:.5rem}.upload-btn-compact{align-items:center;background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.75rem;font-weight:500;gap:.25rem;padding:.4rem .8rem;transition:background-color .2s ease}.upload-btn-compact:hover{background:#2563eb}.remove-btn-compact{background:#ef4444;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.75rem;padding:.25rem .5rem;transition:background-color .2s ease}.remove-btn-compact:hover{background:#dc2626}.checkbox-group-compact{margin-top:1rem}.checkbox-label-compact{align-items:center;color:#374151;cursor:pointer;display:flex;font-size:.875rem;gap:.5rem}.checkbox-label-compact input[type=checkbox]{margin:0!important;width:auto!important}.edit-candidate-modal-compact .modal-footer{background:#f8fafc;border-top:1px solid #e2e8f0;display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem}@media (max-width:768px){.edit-form-grid{gap:1rem;grid-template-columns:1fr;padding:1rem}.edit-candidate-modal-compact{max-height:90vh!important;width:98%!important}.edit-form-grid{max-height:70vh}}@media (max-width:600px){.edit-candidate-modal-compact .modal-footer,.edit-candidate-modal-compact .modal-header{padding:.75rem 1rem}}.form-input:invalid,.form-input:invalid:not(:placeholder-shown),.form-input:valid,.form-input:valid:not(:placeholder-shown){background:#fff!important;border-color:#e2e8f0!important;box-shadow:none!important}.form-input:focus:invalid,.form-input:focus:valid{background:#fff!important;border-color:#093fb4!important;box-shadow:0 0 0 3px #093fb41a!important}.form-input.error,.form-input.error:focus{background:#fef2f2!important;border-color:#dc2626!important}.form-input.error:focus{box-shadow:0 0 0 3px #dc26261a!important}.analytics-grid,.analytics-overview{margin-bottom:2rem}.analytics-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.analytics-card{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 8px #0000000a;display:flex;gap:1rem;padding:1.5rem;transition:all .3s ease}.analytics-card:hover{border-color:#093fb4;box-shadow:0 4px 16px #00000014}.analytics-icon{align-items:center;border-radius:12px;color:#fff;display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.analytics-icon.success{background:linear-gradient(135deg,#10b981,#059669)}.analytics-icon.info{background:linear-gradient(135deg,#3b82f6,#2563eb)}.analytics-icon.warning{background:linear-gradient(135deg,#f59e0b,#d97706)}.analytics-icon.primary{background:linear-gradient(135deg,#093fb4,#0056d6)}.analytics-content h3{color:#1a202c;font-size:2rem;font-weight:700;margin:0}.analytics-content p{color:#6b7280;font-size:.875rem;margin:.25rem 0 0}.results-controls{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-wrap:wrap;justify-content:space-between;margin-bottom:2rem;padding:1.5rem}.filter-section,.results-controls{align-items:center;display:flex;gap:1rem}.filter-section label{align-items:center;color:#374151;display:flex;font-weight:500;gap:.5rem}.filter-section select{min-width:200px}.action-buttons{display:flex;gap:1rem}.position-results,.results-content{margin-bottom:2rem}.position-results{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.position-header{align-items:center;background:linear-gradient(135deg,#f8fafc,#edf2f7);border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:1.5rem}.position-header h2{color:#1a202c;font-size:1.5rem;font-weight:600;margin:0}.position-header .vote-count{background:#093fb4;border-radius:20px;color:#fff;font-size:.875rem;font-weight:500;padding:.5rem 1rem}.candidates-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));padding:1.5rem}.candidate-card{background:#fff;border:2px solid #e2e8f0;border-radius:12px;padding:1.5rem;position:relative;transition:all .3s ease}.candidate-card:hover{border-color:#093fb4;box-shadow:0 4px 16px #00000014}.candidate-card.winner{background:linear-gradient(135deg,#fff,#f0fdf4);border-color:#10b981;box-shadow:0 4px 20px #10b98126}.winner-badge{background:linear-gradient(135deg,#10b981,#059669);border-radius:0 12px 0 12px;color:#fff;font-size:.75rem;font-weight:600;gap:.25rem;padding:.5rem 1rem;position:absolute;right:-1px;top:-1px}.candidate-info,.winner-badge{align-items:center;display:flex}.candidate-info{gap:1rem;margin-bottom:1rem}.candidate-avatar{border-radius:50%;flex-shrink:0;height:60px;overflow:hidden;width:60px}.candidate-avatar img{height:100%;object-fit:cover;width:100%}.avatar-placeholder{align-items:center;background:linear-gradient(135deg,#093fb4,#0056d6);color:#fff;display:flex;font-size:1.25rem;font-weight:600;height:100%;justify-content:center;width:100%}.candidate-details h3{color:#1a202c;font-size:1.125rem;font-weight:600;margin:0 0 .25rem}.candidate-details p{color:#6b7280;font-size:.875rem;margin:0 0 .5rem}.vote-info{align-items:center;display:flex;justify-content:space-between}.vote-info .vote-count{color:#093fb4;font-size:1rem;font-weight:600}.position-rank{background:#f3f4f6;border-radius:12px;color:#374151;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.vote-progress{background:#f3f4f6;border-radius:3px;height:6px;overflow:hidden}.progress-bar{background:linear-gradient(135deg,#093fb4,#0056d6);border-radius:3px;height:100%;transition:width .5s ease}.candidate-card.winner .progress-bar{background:linear-gradient(135deg,#10b981,#059669)}.report-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-top:2rem;padding:2rem}.report-header{margin-bottom:1.5rem}.report-header h3{color:#1a202c;font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.report-header p{color:#6b7280;margin:0}.report-actions{display:flex;flex-wrap:wrap;gap:1rem}.btn.btn-success{background:linear-gradient(135deg,#10b981,#059669);border:none;color:#fff}.btn.btn-success:hover{background:linear-gradient(135deg,#059669,#047857)}.loading-container{padding:4rem 2rem}.loading-spinner{border:4px solid #e2e8f0;border-radius:50%;border-top-color:#093fb4;height:40px;margin-bottom:1rem;width:40px}.animate-spin,.loading-spinner{animation:spin 1s linear infinite}@media (max-width:768px){.analytics-grid{grid-template-columns:1fr}.results-controls{align-items:stretch;flex-direction:column}.filter-section{justify-content:space-between}.action-buttons{justify-content:center}.candidates-grid{grid-template-columns:1fr}.position-header{gap:1rem;text-align:center}.position-header,.report-actions{flex-direction:column}}.pagination{border-top:1px solid #e0e0e0;gap:20px;justify-content:center;margin-top:20px;padding:20px 0}.pagination,.pagination-btn{align-items:center;display:flex}.pagination-btn{background-color:#2196f3;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:14px;gap:5px;padding:8px 16px;transition:all .3s ease}.pagination-btn:hover:not(:disabled){background-color:#1976d2;transform:translateY(-1px)}.pagination-btn:disabled{background-color:#ccc;cursor:not-allowed;transform:none}.pagination-info{align-items:center;display:flex;flex-direction:column;font-size:14px;gap:5px}.pagination-count{color:#666;font-size:12px}.no-results{color:#666;font-size:16px;padding:40px 20px;text-align:center}.no-results p{margin:0}.statistics-container{background:#f8f9fa;margin:0 auto;max-width:1200px;min-height:100vh;padding:20px}.statistics-header{align-items:flex-start;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;margin-bottom:30px;padding:25px}.statistics-header .header-content h1{color:#093fb4;font-size:2.5rem;font-weight:700;margin:0 0 10px}.statistics-header .header-subtitle p{color:#666;font-size:1.1rem;margin:0 0 10px}.statistics-header .last-updated{align-items:center;color:#888;display:flex;font-size:.9rem;gap:8px}.statistics-header .header-actions{align-items:center;display:flex;gap:15px}.election-status-section{margin-bottom:30px}.election-status{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;display:flex;gap:20px;padding:25px}.election-status.status-active{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-left:6px solid #10b981}.election-status.status-scheduled{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-left:6px solid #f59e0b}.election-status.status-ended{background:linear-gradient(135deg,#f9fafb,#f3f4f6);border-left:6px solid #6b7280}.election-status.status-inactive{background:linear-gradient(135deg,#fef2f2,#fecaca);border-left:6px solid #ef4444}.election-status.status-unknown{background:linear-gradient(135deg,#faf5ff,#e9d5ff);border-left:6px solid #8b5cf6}.status-icon{align-items:center;background:#fffc;border-radius:50%;display:flex;height:60px;justify-content:center;width:60px}.status-active .status-icon{color:#10b981}.status-scheduled .status-icon{color:#f59e0b}.status-ended .status-icon{color:#6b7280}.status-inactive .status-icon{color:#ef4444}.status-unknown .status-icon{color:#8b5cf6}.status-content h2{font-size:1.5rem;font-weight:600;margin:0 0 5px}.status-content p{color:#666;font-size:1rem;margin:0 0 10px}.countdown{align-items:center;color:#093fb4;display:flex;font-size:1.1rem;font-weight:600;gap:8px}.statistics-overview{margin-bottom:30px}.statistics-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.statistics-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;display:flex;gap:20px;padding:25px;transition:transform .2s ease,box-shadow .2s ease}.statistics-card:hover{box-shadow:0 4px 20px #00000026;transform:translateY(-2px)}.statistics-card.skeleton{animation:skeleton-pulse 1.5s ease-in-out infinite}.statistics-icon{align-items:center;border-radius:12px;display:flex;flex-shrink:0;height:70px;justify-content:center;width:70px}.statistics-icon.primary{background:linear-gradient(135deg,#093fb4,#0056d6);color:#fff}.statistics-icon.success{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.statistics-icon.info{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.statistics-icon.warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.statistics-content{flex:1 1}.statistics-content h3{color:#093fb4;font-size:2.2rem;font-weight:700;margin:0 0 8px}.statistics-content p{color:#333;font-size:1.1rem;font-weight:600;margin:0 0 5px}.statistics-content small{color:#666;font-size:.9rem}.detailed-statistics{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;padding:25px}.detailed-statistics h2{border-bottom:2px solid #e0e0e0;color:#093fb4;font-size:1.5rem;font-weight:600;margin:0 0 20px;padding-bottom:10px}.details-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.detail-item{align-items:center;background:#f8f9fa;border-left:4px solid #093fb4;border-radius:8px;display:flex;justify-content:space-between;padding:15px}.detail-label{color:#333;font-weight:600}.detail-value{color:#093fb4;font-weight:700}.status-text.status-active{color:#10b981}.status-text.status-scheduled{color:#f59e0b}.status-text.status-ended{color:#6b7280}.status-text.status-inactive{color:#ef4444}.status-text.status-unknown{color:#8b5cf6}.skeleton-icon{background:#e0e0e0;border-radius:12px;height:70px;width:70px}@media (max-width:768px){.statistics-container{padding:15px}.statistics-header{align-items:stretch;flex-direction:column;gap:20px}.statistics-header .header-actions{justify-content:center}.statistics-grid{grid-template-columns:1fr}.statistics-card{padding:20px}.election-status{flex-direction:column;gap:15px;text-align:center}.details-grid{grid-template-columns:1fr}.detail-item{flex-direction:column;gap:10px;text-align:center}}.input-container .form-input{padding-right:40px}.password-toggle{align-items:center;background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;justify-content:center;padding:4px;position:absolute;right:12px;transition:color .2s ease}.password-toggle:hover{background-color:#f3f4f6;color:#374151}.password-toggle:disabled{cursor:not-allowed;opacity:.5}.spinner{animation:spin 1s linear infinite;border:2px solid #f3f4f6;border-radius:50%;border-top-color:#3b82f6;display:inline-block}.error-text{color:#dc2626;display:block;font-size:14px;margin-top:4px}.form-input.error{border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}.btn svg{margin-right:8px}.btn:disabled{cursor:not-allowed;opacity:.6}.user-info-section{align-items:center;background:#f8fafc;border-radius:8px;display:flex;gap:12px;margin-bottom:24px;padding:16px}.password-requirements{background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;margin-top:16px;padding:12px}.password-requirements ul{color:#374151;font-size:13px;margin:0;padding-left:20px}.error-message{background:#fef2f2;border-radius:6px;margin-top:16px;padding:12px}.env-badge{align-items:center;background:#dcfce7;border-radius:4px;color:#166534;display:flex;font-size:12px;font-weight:500;gap:6px;margin-left:auto;padding:4px 8px}.info-banner{align-items:flex-start;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;display:flex;gap:12px;margin-bottom:20px;padding:16px}.info-banner h4{color:#1e40af;font-size:14px;font-weight:600;margin:0 0 4px}.info-banner p{color:#1e3a8a;font-size:14px;line-height:1.4;margin:0}.form-input.readonly{background-color:#f8fafc;border-color:#d1d5db;color:#6b7280;cursor:not-allowed}.form-input.readonly:focus{border-color:#d1d5db;box-shadow:none;outline:none}.env-config-guide{margin:20px 0}.env-config-guide h4{color:#374151;font-size:16px;font-weight:600;margin:0 0 12px}.env-var-list{display:flex;flex-direction:column;gap:8px}.env-var-item{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;display:flex;justify-content:space-between;padding:8px 12px}.env-var-item code{background:#1f2937;border-radius:4px;color:#f9fafb;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;font-weight:500;padding:2px 6px}.env-var-item span{color:#6b7280;font-size:13px}.form-header{align-items:center;display:flex;gap:12px;margin-bottom:20px}.form-header h2{flex:1 1;margin:0}.tabs-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#f8fafc,#fff);border:1px solid #e2e8f099;border-radius:16px;box-shadow:0 4px 20px #00000014,0 1px 3px #0000001a;overflow:hidden;position:relative}.tabs-container:before{background:linear-gradient(90deg,#0000,#093fb44d 50%,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.tabs-wrapper{border-bottom:1px solid #e2e8f066;gap:4px;padding:8px}.tab-button,.tabs-wrapper{background:#0000;display:flex;position:relative}.tab-button{align-items:center;border:none;border-radius:12px;color:#64748b;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;gap:10px;justify-content:center;min-width:0;overflow:hidden;padding:14px 20px;transition:all .3s cubic-bezier(.4,0,.2,1)}.tab-button:before{background:linear-gradient(135deg,#fffc,#fff6);border-radius:12px;bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.tab-button:hover{box-shadow:0 2px 8px #0000001a;color:#475569;transform:translateY(-1px)}.tab-button:hover:before{opacity:1}.tab-button.active{background:linear-gradient(135deg,#093fb4,#1e40af);border:1px solid #fff3;box-shadow:0 8px 25px #093fb44d,0 3px 10px #093fb433;color:#fff;font-weight:600;transform:translateY(-2px)}.tab-button.active:before{background:linear-gradient(135deg,#fff3,#ffffff1a);opacity:1}.tab-button.active:after{background:#fffc;border-radius:2px;bottom:0;content:"";height:3px;left:50%;position:absolute;transform:translateX(-50%);width:24px}.tab-button svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.1));flex-shrink:0;transition:transform .3s ease}.tab-button.active svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));transform:scale(1.1)}.tab-button .tab-count{background:#0000001a;border-radius:8px;color:inherit;font-size:11px;font-weight:600;margin-left:4px;padding:2px 6px;transition:all .3s ease}.tab-button.active .tab-count{background:#fff3;color:#ffffffe6}@media (max-width:768px){.tabs-wrapper{flex-direction:column;gap:2px;padding:6px}.tab-button{border-radius:10px;flex:none;justify-content:flex-start;padding:12px 16px}.tab-button.active:after{bottom:50%;height:16px;left:8px;transform:none;transform:translateY(50%);width:3px}}@media (max-width:640px){.tab-button{font-size:13px;gap:8px;padding:10px 14px}.tabs-container{border-radius:12px}.tab-button{border-radius:8px}}.alert{border:1px solid;border-radius:6px;font-size:14px;margin:1rem 0;padding:1rem;position:relative}.alert-content{align-items:center;display:flex;justify-content:space-between}.alert-close{background:none;border:none;cursor:pointer;font-size:18px;font-weight:700;margin-left:1rem;opacity:.7;padding:0;transition:opacity .2s}.alert-close:hover{opacity:1}.alert-success{background-color:#d4edda;border-color:#c3e6cb;color:#155724}.alert-danger{background-color:#f8d7da;border-color:#f5c6cb;color:#721c24}.alert-info{background-color:#d1ecf1;border-color:#bee5eb;color:#0c5460}.confirmation-modal{max-width:500px;width:90%}.modal-title-with-icon{align-items:center;display:flex;gap:.75rem}.modal-title-with-icon h3{color:#374151;font-size:1.25rem;font-weight:600;margin:0}.confirmation-modal .modal-body{margin:0 1rem;padding:1.5rem 0}.confirmation-modal .modal-body p{color:#6b7280;font-size:1rem;line-height:1.5;margin:0;text-align:left}.confirmation-modal .modal-footer{border-top:1px solid #e5e7eb;display:flex;gap:.75rem;justify-content:flex-end;padding-top:1.5rem}.confirmation-modal .modal-close-btn{align-items:center;background:#0000;border:none;border-radius:8px;color:#9ca3af;cursor:pointer;display:flex;font-size:20px;height:32px;justify-content:center;line-height:1;padding:6px;position:absolute;right:16px;top:16px;transition:all .15s ease;width:32px;z-index:10}.confirmation-modal .modal-close-btn:hover{background:#f3f4f6;color:#374151;transform:scale(1.05)}.confirmation-modal .modal-close-btn:active{background:#e5e7eb;color:#1f2937;transform:scale(.95)}.confirmation-modal .modal-close-btn:focus{outline:2px solid #3b82f6;outline-offset:2px}.btn.btn-warning{background-color:#f59e0b;border:1px solid #f59e0b;color:#fff}.btn.btn-warning:hover{background-color:#d97706;border-color:#d97706}.exhibition{align-items:center;background:linear-gradient(135deg,#fff,#fff);display:flex;flex-direction:column;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;justify-content:center;min-height:100vh;padding:20px}.election-branding{margin-bottom:30px;padding:20px;text-align:center}.election-logo-header{border-radius:12px;filter:drop-shadow(0 6px 16px rgba(9,63,180,.25));height:80px;margin-bottom:16px;object-fit:contain;width:80px}.election-title{color:#093fb4;font-size:24px;font-weight:700;letter-spacing:-.5px;margin:0;text-shadow:0 2px 8px #093fb41a}.loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:50vh;text-align:center}.loading-logo{animation:pulse 2s ease-in-out infinite;color:#093fb4;font-size:48px;margin-bottom:16px}.loading-text{color:#6b7280;font-size:16px;font-weight:500}@keyframes pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}.exhibition__container{background:#fff;border:1px solid #093fb41a;border-radius:20px;box-shadow:0 20px 50px #093fb41f,0 8px 30px #0000000f;max-width:420px;padding:28px;transition:transform .3s ease,box-shadow .3s ease;width:100%}.exhibition__container:hover{box-shadow:0 30px 80px #093fb433,0 15px 45px #0000001a;transform:translateY(-4px)}.exhibition__header{margin-bottom:24px;text-align:center}.exhibition__logo{display:flex;justify-content:center;margin-bottom:8px}.logo-icon{color:#093fb4;display:block;filter:drop-shadow(0 4px 12px rgba(9,63,180,.3));font-size:36px;margin-bottom:8px}.exhibition__header h1{color:#093fb4;font-size:26px;font-weight:700;letter-spacing:-.5px;margin:0 0 6px}.exhibition__subtitle{color:#666;font-size:14px;font-weight:400;line-height:1.4;margin:0}.exhibition__form,.form-group{margin-bottom:20px}.form-group{position:relative}.form-label{color:#333;display:block;font-size:13px;font-weight:600;letter-spacing:.3px;margin-bottom:6px}.input-container{align-items:center;display:flex;position:relative}.form-input{background:#fffcfb;border:2px solid #e2e8f0;border-radius:10px;box-sizing:border-box;color:#333;font-size:15px;padding:12px 45px 12px 14px;transition:all .3s ease;width:100%}.form-input:hover:not(:disabled){border-color:#cbd5e0;box-shadow:0 4px 12px #0000000f,0 2px 4px #00000014;transform:translateY(-1px)}.form-input:focus{border-color:#093fb4;box-shadow:0 0 0 3px #093fb41a;outline:none;transform:translateY(-1px)}.form-input:focus+.input-icon{color:#093fb4;transform:scale(1.1)}.form-input:disabled{background:#f7fafc;border-color:#e2e8f0;box-shadow:none;color:#a0aec0;cursor:not-allowed;transform:none}.form-input::placeholder{color:#a0aec0;font-weight:400}.input-icon{color:#a0aec0;font-size:18px;pointer-events:none;position:absolute;right:16px;transition:all .3s ease}.error-message{align-items:center;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fecaca;border-radius:10px;color:#dc2626;display:flex;font-size:14px;font-weight:500;gap:8px;margin-bottom:16px;padding:12px 16px}.error-icon{flex-shrink:0;font-size:18px}.button-group{display:flex;flex-direction:column;gap:12px}.search-button{align-items:center;background:linear-gradient(135deg,#093fb4,#0056d6);border:none;border-radius:10px;color:#fffcfb;cursor:pointer;display:flex;font-size:15px;font-weight:600;gap:8px;justify-content:center;letter-spacing:.3px;min-height:48px;padding:12px 20px;transition:all .3s ease;width:100%}.search-button:hover:not(:disabled){background:linear-gradient(135deg,#0056d6,#093fb4);box-shadow:0 8px 25px #093fb44d;transform:translateY(-2px)}.search-button:active:not(:disabled){transform:translateY(0)}.search-button:disabled{background:#a0aec0;box-shadow:none;cursor:not-allowed;transform:none}.search-button.loading .spinner{animation:spin 1s linear infinite;border:2px solid #fffcfb4d;border-radius:50%;border-top-color:#fffcfb;height:18px;width:18px}.reset-button{align-items:center;background:#0000;border:2px solid #093fb4;border-radius:10px;color:#093fb4;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;letter-spacing:.3px;padding:10px 20px;transition:all .3s ease}.reset-button:hover:not(:disabled){background:#093fb4;box-shadow:0 4px 15px #093fb433;color:#fffcfb;transform:translateY(-1px)}.button-icon{font-size:16px;transition:transform .3s ease}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.exhibition__results{animation:slideUp .4s ease-out;margin-bottom:20px}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.result-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;transition:all .3s ease}.result-card.success{border-color:#10b981;box-shadow:0 4px 20px #10b9811a}.result-card.error{border-color:#ef4444;box-shadow:0 4px 20px #ef44441a}.result-header{align-items:center;background:#fafbfc;border-bottom:1px solid #e2e8f0;display:flex;gap:16px;padding:20px}.error-icon,.success-icon{align-items:center;border-radius:50%;display:flex;flex-shrink:0;font-size:24px;height:48px;justify-content:center;width:48px}.success-icon{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.error-icon{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.result-title h3{color:#1a202c;font-size:18px;font-weight:600;margin:0 0 4px}.result-title p{color:#6b7280;font-size:14px;margin:0}.student-info{padding:0}.info-row{align-items:center;background:#fff;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;padding:16px 20px;transition:background-color .2s ease}.info-row:hover{background:#fafbfc}.info-row:last-child{border-bottom:none}.info-label{color:#6b7280;font-size:14px;font-weight:500}.info-value{color:#1a202c;font-size:14px;font-weight:600;max-width:60%;text-align:right;word-break:break-word}.result-footer{background:linear-gradient(135deg,#f0fdf4,#ecfdf5);border-top:1px solid #d1fae5;padding:16px 20px}.success-message{align-items:center;color:#047857;display:flex;font-size:14px;font-weight:500;gap:8px}.check-icon{flex-shrink:0;font-size:16px}.not-found-info{padding:20px}.not-found-text{color:#4b5563;font-size:15px;line-height:1.5;margin-bottom:20px;text-align:center}.help-section{background:#fffbeb;border:1px solid #fcd34d;border-radius:12px;margin-bottom:16px;padding:16px}.help-section h4{color:#92400e;font-size:14px;font-weight:600;margin:0 0 12px}.help-section ul{margin:0;padding-left:20px}.help-section li{color:#92400e;font-size:13px;line-height:1.4;margin-bottom:6px}.help-section li:last-child{margin-bottom:0}.contact-section{background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;padding:16px;text-align:center}.contact-section p{color:#1e40af;font-size:14px;font-weight:500;margin:0}@media (max-width:768px){.result-header{gap:12px;padding:14px 16px}.error-icon,.success-icon{font-size:20px;height:40px;width:40px}.result-title h3{font-size:16px}.result-title p{font-size:13px}.info-row{align-items:flex-start;flex-direction:column;gap:4px;padding:12px 16px}.info-value{font-weight:500;max-width:100%;text-align:left}.result-footer{padding:12px 16px}.success-message{font-size:13px}.not-found-info{padding:14px 16px}.contact-section,.help-section{margin-bottom:12px;padding:12px}.help-section h4{font-size:13px}.help-section li{font-size:12px}.contact-section p{font-size:13px}.exhibition{align-items:center;justify-content:flex-start;min-height:100vh;padding:20px 16px}.election-branding{margin-bottom:20px;padding:15px}.election-logo-header{height:60px;margin-bottom:12px;width:60px}.election-title{font-size:18px}.exhibition__container{box-shadow:0 10px 30px #093fb426,0 4px 15px #00000014;margin:0 8px;max-width:100%;padding:20px 18px}.exhibition__header{margin-bottom:20px}.exhibition__header h1{font-size:22px}.logo-icon{font-size:30px}.form-input{font-size:16px;padding:12px 40px 12px 14px}.search-button{font-size:15px;min-height:48px;padding:12px 18px}.reset-button{font-size:14px;padding:10px 18px}.button-group{gap:10px}}@media (max-width:480px){.exhibition{padding:15px 12px 16px}.election-branding{margin-bottom:15px;padding:10px}.election-logo-header{height:50px;margin-bottom:10px;width:50px}.election-title{font-size:16px}.exhibition__container{border-radius:16px;margin:0 4px;padding:18px 16px}.exhibition__header h1{font-size:20px}.logo-icon{font-size:28px}.exhibition__subtitle{font-size:13px}.form-input{padding:11px 38px 11px 12px}.search-button{font-size:14px;min-height:46px}.button-group{gap:8px}}@media (prefers-contrast:high){.exhibition__container{border:2px solid #093fb4}.form-input{border-width:2px}.search-button{border:2px solid #093fb4}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}