:root{font-family:Georgia,Times New Roman,serif;line-height:1.5;font-weight:400;color:#11284a;background:linear-gradient(180deg,#f3f8fd,#edf4fb);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}.app-shell{width:min(880px,100%);margin:0 auto;padding:32px 20px 48px}.admin-shell{display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px;width:min(1200px,100%);margin:0 auto;padding:24px 20px 48px}.panel{background:#fff;border:1px solid #d7dee7;border-radius:18px;padding:28px;box-shadow:0 18px 40px #14315414}.panel+.panel{margin-top:24px}.page-title,.ballot-title{margin:0 0 12px;color:#11284a}.admin-title{margin:4px 0 0;font-size:1.8rem;color:#11284a}.page-title{font-size:clamp(2rem,3vw,2.8rem)}.admin-eyebrow{margin:0;font-size:.9rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0f5ea8}.intro-text,.ballot-description,.status-message,.candidate-church{color:#4c6179}.field-label{display:block;margin:24px 0 10px;font-size:1.05rem;font-weight:700;color:#11284a}.code-input{width:min(100%,360px);padding:14px 16px;border:2px solid #b8c6d8;border-radius:12px;font-size:1.2rem;letter-spacing:.08em;text-transform:uppercase;background:#fbfdff}.primary-button{display:inline-block;margin-top:18px;padding:14px 22px;border:none;border-radius:12px;background:#0f5ea8;color:#fff;font-size:1.05rem;font-weight:700}.secondary-button{display:inline-block;padding:12px 18px;border:1px solid #b7c6d8;border-radius:12px;background:#fff;color:#11284a;font-size:1rem;font-weight:700}.status-message{min-height:1.5rem;margin:18px 0 0;font-size:1rem}.confirmation-message{margin:0;font-size:1.25rem;color:#11284a}.admin-sidebar{display:flex;flex-direction:column;gap:24px;align-self:start;padding:24px;border:1px solid #d7dee7;border-radius:18px;background:#fff;box-shadow:0 18px 40px #14315414}.admin-nav{display:grid;gap:10px}.admin-nav-link{display:block;padding:12px 14px;border-radius:12px;color:#294866;text-decoration:none;font-weight:700}.admin-nav-link.active{background:#e8f1fb;color:#0f5ea8}.admin-main{min-width:0}.admin-page-panel,.admin-login-panel{text-align:left}.admin-list,.admin-summary-grid{display:grid;gap:16px;margin-top:20px}.admin-card-link{text-decoration:none}.admin-card,.admin-summary-card{padding:18px;border:1px solid #d7dee7;border-radius:16px;background:#f8fbff}.admin-card-title{margin:0 0 8px;color:#11284a}.admin-card-meta{margin:6px 0 0;color:#4c6179}.admin-form-grid,.admin-candidate-grid{display:grid;gap:10px}.admin-textarea{width:100%;padding:14px 16px;border:2px solid #b8c6d8;border-radius:12px;font-size:1rem;background:#fbfdff;resize:vertical}.inline-button{margin-top:16px}.admin-bullet-list{margin:12px 0 0 20px;color:#294866}.admin-action-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.admin-action-panel{margin-top:24px;padding:18px;border:1px solid #d7dee7;border-radius:16px;background:#f8fbff}.admin-inline-form{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-top:8px}.compact-button{margin-top:0}.compact-input{width:140px}input[type=file]{display:block;margin-top:10px}.ballot-panel{text-align:left}.positions-list{display:grid;gap:18px;margin-top:24px}.position-card{margin:0;padding:18px;border:1px solid #d7dee7;border-radius:16px;background:#f8fbff}.position-title{padding:0 8px;font-size:1.25rem;font-weight:700;color:#11284a}.candidate-option{display:flex;align-items:flex-start;gap:14px;padding:14px 0;font-size:1.1rem;color:#11284a}.candidate-option+.candidate-option{border-top:1px solid #dfe7f0}.candidate-option input{width:22px;height:22px;margin-top:2px}.candidate-text{display:flex;flex-direction:column;gap:2px}.candidate-name{font-weight:700}.submit-button{margin-top:24px}@media(max-width:640px){.app-shell{padding:20px 14px 36px}.admin-shell{grid-template-columns:1fr;padding:20px 14px 36px}.panel{padding:22px 18px}.code-input,.primary-button,.secondary-button{width:100%}}
