:root{font-family:Tomorrow,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color:#213547;background-color:#fff}body{margin:0;min-width:320px;min-height:100vh}.candidate-list{overflow-y:auto;flex:1}.candidate-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;cursor:pointer;border-left:4px solid transparent;transition:all .15s}.candidate-item:hover{background-color:#f9fafb}.candidate-item.selected{background-color:#3b82f61a;border-left-color:#3b82f6}.candidate-info{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.party-badge{font-weight:700;font-size:.75rem;opacity:.6}.candidate-name{font-weight:500;font-size:.875rem;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.candidate-stats{display:flex;align-items:center;gap:.5rem}.candidate-score{font-weight:500;font-size:.875rem;color:#6b7280}.candidate-detail{display:flex;flex-direction:column;gap:1.5rem}.detail-header{display:flex;justify-content:space-between;align-items:flex-start}.header-info{display:flex;flex-direction:column;gap:.25rem}.name-row{display:flex;align-items:baseline;gap:.5rem}.detail-name{font-size:1.875rem;font-weight:700;margin:0}.party-label{font-size:1.25rem;font-weight:700;opacity:.5}.party-d{color:#2563eb}.party-r{color:#dc2626}.party--{color:#6b7280}.detail-meta{color:#6b7280;margin:0;font-size:.875rem}.detail-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.stat-card{background:#fff;padding:1rem;border-radius:8px;border:1px solid #e5e7eb}.stat-label{font-size:.875rem;color:#6b7280;display:block;margin-bottom:.25rem}.stat-row{display:flex;align-items:center;gap:.75rem}.stat-value{font-size:1.5rem;font-weight:700;color:#111827}.stat-value.positive{color:#16a34a}.stat-value.negative{color:#dc2626}.change-amount{font-size:.875rem}.change-amount.positive{color:#16a34a}.change-amount.negative{color:#dc2626}.trend-icon{display:flex;align-items:center}.trend-icon.positive{color:#16a34a}.trend-icon.negative{color:#dc2626}.chart-section{background:#fff;border-radius:12px;border:1px solid #e5e7eb;padding:1.5rem;box-shadow:0 1px 3px #0000000d}.chart-container{width:100%}.home-container{display:flex;flex-direction:column;height:100vh;background-color:#f9fafb}.home-header{display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;height:56px;background:#fff;border-bottom:1px solid #e5e7eb}.home-title{font-size:1.25rem;font-weight:700;margin:0}.logout-button{padding:.5rem 1rem;background:transparent;border:1px solid #e5e7eb;border-radius:4px;cursor:pointer;color:#666}.logout-button:hover{background:#f3f4f6}.home-main{display:flex;flex:1;overflow:hidden}.sidebar{width:340px;background:#fff;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb}.election-select{width:100%;padding:.5rem .75rem;border:1px solid #e5e7eb;border-radius:6px;font-size:.875rem;background:#fff;cursor:pointer}.election-select:focus{outline:none;border-color:#3b82f6}.sidebar-content{flex:1;overflow-y:auto}.sidebar-title{font-size:1rem;font-weight:600;margin:0;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb}.content{flex:1;overflow:auto;padding:1.5rem}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:#9ca3af}.loading-text{padding:1rem 1.5rem;color:#6b7280}.error-text{padding:1rem 1.5rem;color:#dc2626}.auth-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:#f5f5f5}.auth-card{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 10px #0000001a;width:100%;max-width:400px}.auth-title{font-size:1.5rem;font-weight:700;margin:0 0 .5rem;text-align:center}.auth-subtitle{color:#666;margin:0 0 1.5rem;text-align:center}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-input{padding:.75rem 1rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.auth-input:focus{outline:none;border-color:#333}.auth-button{padding:.75rem 1rem;background:#333;color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer}.auth-button:hover{background:#444}.auth-error{color:#e53e3e;margin:0;font-size:.875rem}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;height:100vh}.loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:1rem;color:#666}
