:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;width:100%}*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #d98a7d;--primary-dark: #c47a6d;--secondary-color: #7d7f8b;--dark-bg: #3c3d44;--success-color: #34a853;--text-primary: #202124;--text-secondary: #5f6368;--text-light: #eeeeed;--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--border-color: #dadce0;--shadow: 0 2px 10px rgba(0, 0, 0, .1);--shadow-lg: 0 4px 20px rgba(0, 0, 0, .15)}body{font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Oxygen,Ubuntu,sans-serif;background:linear-gradient(135deg,#7d7f8b,#d98a7d);min-height:100vh;margin:0;width:100%}#root{width:100%;min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column;width:100%}.app-header{background:var(--dark-bg);padding:1rem 1.5rem;text-align:center;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;gap:1rem;width:100%}.app-header .logo{width:50px;height:50px;border-radius:50%;object-fit:cover}.app-header .header-text{text-align:left}.app-header h1{color:var(--text-light);font-size:1.5rem;font-weight:600;margin-bottom:.125rem}.app-header .subtitle{color:var(--primary-color);font-size:.85rem}.app-main{flex:1;padding:2rem 1.5rem;display:flex;flex-direction:column;align-items:center;width:100%;max-width:1200px;margin:0 auto}.election-info{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;width:100%;margin-bottom:2rem}.info-card{background:var(--bg-primary);border-radius:12px;padding:1.25rem;text-align:center;box-shadow:var(--shadow)}.info-card h3{color:var(--text-secondary);font-size:.85rem;font-weight:500;margin-bottom:.5rem}.date-highlight,.stat-highlight{color:var(--primary-color);font-size:1.5rem;font-weight:700}.date-note{color:var(--text-secondary);font-size:.75rem;margin-top:.25rem}.search-container{width:100%;max-width:500px;margin-bottom:2rem}.search-input{width:100%;padding:1rem 1.5rem;border:2px solid var(--border-color);border-radius:50px;font-size:1rem;background:var(--bg-primary);transition:border-color .2s,box-shadow .2s}.search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #d98a7d33}.candidates-section{width:100%;margin-bottom:2rem}.candidates-section h2,.other-candidates-section h2,.issues-section h2{color:var(--text-light);font-size:1.5rem;text-align:center;margin-bottom:.5rem}.section-description{color:var(--text-light);opacity:.8;text-align:center;margin-bottom:1.5rem}.candidates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.candidate-card{background:var(--bg-primary);border-radius:12px;padding:1.25rem;box-shadow:var(--shadow);border-left:4px solid;cursor:pointer;transition:transform .2s,box-shadow .2s}.candidate-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.candidate-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:.75rem}.candidate-avatar{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1.1rem;flex-shrink:0}.candidate-info h3{color:var(--text-primary);font-size:1.1rem;margin-bottom:.25rem}.party-badge{display:inline-block;padding:.125rem .5rem;border-radius:4px;color:#fff;font-size:.7rem;font-weight:600;margin-right:.5rem}.party-name{color:var(--text-secondary);font-size:.8rem;margin-top:.25rem}.candidate-position{color:var(--text-secondary);font-size:.85rem;margin-bottom:1rem}.btn-ver-mas{width:100%;padding:.625rem;background:var(--bg-secondary);border:none;border-radius:8px;color:var(--text-primary);font-weight:500;cursor:pointer;transition:background .2s}.btn-ver-mas:hover{background:var(--border-color)}.other-candidates-section{width:100%;margin-bottom:2rem}.other-candidates-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.75rem;background:var(--bg-primary);border-radius:12px;padding:1.5rem;box-shadow:var(--shadow);margin-bottom:1rem}.other-candidate-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border-color)}.other-candidate-item:last-child{border-bottom:none}.other-candidate-item strong{color:var(--text-primary);font-size:.9rem}.other-candidate-item span{color:var(--text-secondary);font-size:.8rem}.tse-note{color:var(--text-light);text-align:center;font-size:.9rem}.tse-note a{color:var(--primary-color)}.issues-section{width:100%;margin-bottom:2rem}.issues-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.issue-card{background:var(--bg-primary);border-radius:12px;padding:1.25rem;text-align:center;box-shadow:var(--shadow)}.issue-icon{font-size:2rem;display:block;margin-bottom:.5rem}.issue-card h4{color:var(--text-primary);font-size:1rem;margin-bottom:.5rem}.issue-card p{color:var(--text-secondary);font-size:.8rem}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000;overflow-y:auto}.modal-content{background:var(--bg-primary);border-radius:16px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.modal-close{position:absolute;top:1rem;right:1rem;width:36px;height:36px;border-radius:50%;border:none;background:#fff3;color:#fff;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10}.modal-close:hover{background:#ffffff4d}.modal-header{padding:2rem;display:flex;align-items:center;gap:1.25rem;border-radius:16px 16px 0 0}.modal-avatar{width:70px;height:70px;border-radius:50%;background:#fff3;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1.5rem;flex-shrink:0}.modal-title h2{color:#fff;font-size:1.5rem;margin-bottom:.25rem}.modal-party{color:#ffffffe6;font-size:.9rem;display:block}.modal-position{color:#ffffffb3;font-size:.85rem;display:block;margin-top:.25rem}.modal-body{padding:1.5rem 2rem 2rem}.candidate-meta{display:flex;gap:1.5rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.candidate-meta span{color:var(--text-secondary);font-size:.9rem}.candidate-background{margin-bottom:1.5rem}.candidate-background h4,.candidate-proposals h4{color:var(--text-primary);font-size:1rem;margin-bottom:.75rem}.candidate-background p{color:var(--text-secondary);line-height:1.6}.candidate-proposals{margin-bottom:1.5rem}.proposal-section{margin-bottom:1rem}.proposal-section h5{color:var(--primary-dark);font-size:.95rem;margin-bottom:.5rem}.proposal-section ul{padding-left:1.25rem;color:var(--text-secondary)}.proposal-section li{margin-bottom:.375rem;font-size:.9rem;line-height:1.5}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.875rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.plan-link{width:100%}.view-toggle{display:flex;background:var(--bg-primary);border-radius:12px;padding:.5rem;margin-bottom:2rem;box-shadow:var(--shadow)}.toggle-btn{padding:.75rem 1.5rem;border:none;background:transparent;border-radius:8px;font-size:1rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.toggle-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.toggle-btn.active{background:var(--primary-color);color:#fff}.quiz-section{width:100%;text-align:center}.quiz-section h2{color:var(--text-light);font-size:1.75rem;margin-bottom:.5rem}.quiz-container{background:var(--bg-primary);border-radius:16px;padding:2rem;max-width:700px;margin:0 auto;box-shadow:var(--shadow-lg)}.quiz-progress{margin-bottom:2rem}.progress-bar{height:8px;background:var(--bg-secondary);border-radius:4px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;background:var(--primary-color);border-radius:4px;transition:width .3s ease}.progress-text{color:var(--text-secondary);font-size:.85rem}.quiz-question{margin-bottom:1.5rem}.quiz-question h3{color:var(--text-primary);font-size:1.25rem;line-height:1.5}.quiz-options{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem}.quiz-option{display:flex;align-items:flex-start;gap:1rem;padding:1rem;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:12px;text-align:left;cursor:pointer;transition:all .2s ease}.quiz-option:hover{border-color:var(--primary-color);background:#fff}.quiz-option.selected{border-color:var(--primary-color);background:#d98a7d1a}.option-letter{width:32px;height:32px;background:var(--border-color);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--text-secondary);flex-shrink:0}.quiz-option.selected .option-letter{background:var(--primary-color);color:#fff}.option-text{color:var(--text-primary);font-size:.95rem;line-height:1.4}.quiz-navigation{display:flex;gap:1rem;justify-content:space-between}.quiz-navigation .btn{flex:1;max-width:200px}.quiz-navigation .btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--secondary-color);color:#fff}.btn-secondary:hover{background:#6b6d78}.quiz-results{background:var(--bg-primary);border-radius:16px;padding:2rem;max-width:700px;margin:0 auto;box-shadow:var(--shadow-lg)}.results-header{text-align:center;margin-bottom:2rem}.results-header h2{color:var(--text-primary);font-size:1.5rem;margin-bottom:.5rem}.results-header p{color:var(--text-secondary)}.top-match{border:3px solid;border-radius:16px;padding:1.5rem;margin-bottom:2rem;position:relative;text-align:center}.match-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);padding:.25rem 1rem;border-radius:20px;color:#fff;font-size:.8rem;font-weight:600}.top-match-content{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin:1rem 0}.candidate-avatar.large{width:80px;height:80px;font-size:1.75rem}.top-match-info h3{color:var(--text-primary);font-size:1.5rem;margin-bottom:.25rem}.top-match-info .party-name{color:var(--text-secondary);font-size:.9rem}.match-score{color:var(--success-color);font-size:1.25rem;font-weight:700;margin-top:.5rem}.all-matches{margin-bottom:2rem}.all-matches h4{color:var(--text-primary);font-size:1rem;margin-bottom:1rem;text-align:left}.match-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:8px;cursor:pointer;transition:background .2s}.match-item:hover{background:var(--bg-secondary)}.match-rank{width:24px;height:24px;background:var(--bg-secondary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;color:var(--text-secondary);flex-shrink:0}.match-candidate{display:flex;align-items:center;gap:.5rem;min-width:150px}.candidate-avatar.small{width:32px;height:32px;font-size:.8rem}.match-details{display:flex;flex-direction:column}.match-name{color:var(--text-primary);font-size:.9rem;font-weight:500}.match-party{color:var(--text-secondary);font-size:.75rem}.match-bar-container{flex:1;height:8px;background:var(--bg-secondary);border-radius:4px;overflow:hidden}.match-bar{height:100%;border-radius:4px;transition:width .5s ease}.match-percentage{width:45px;text-align:right;font-weight:600;color:var(--text-primary);font-size:.9rem}.reset-btn{width:100%;margin-bottom:1rem}.results-disclaimer{color:var(--text-secondary);font-size:.8rem;text-align:center;font-style:italic}.app-footer{background:var(--dark-bg);padding:1rem;text-align:center;width:100%;margin-top:auto}.app-footer p{color:var(--text-light);font-size:.75rem;margin:0}.app-footer .powered-by{color:var(--secondary-color);font-size:.7rem;margin-top:.25rem}.app-footer a{color:var(--primary-color);text-decoration:none}.app-footer a:hover{text-decoration:underline}@media(max-width:900px){.issues-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.election-info,.candidates-grid,.other-candidates-list{grid-template-columns:1fr}}@media(max-width:480px){.app-header{padding:.75rem 1rem;gap:.75rem}.app-header .logo{width:40px;height:40px}.app-header h1{font-size:1.1rem}.app-header .subtitle{font-size:.7rem}.app-main{padding:1rem}.issues-grid{grid-template-columns:1fr}.modal-header{flex-direction:column;text-align:center;padding:1.5rem}.modal-body{padding:1rem 1.5rem 1.5rem}.candidate-meta{flex-direction:column;gap:.5rem}}
