:root{--bleu-republique:#003f87;--rouge-republique:#e30613;--bg:#f5f7fa;--card-bg:#fff;--text:#1a1a2e;--text-muted:#6b7280;--border:#e5e7eb;--green:#16a34a;--red:#dc2626;--abstention:#f59e0b;--non-votant:#6b7280}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6}a{color:var(--bleu-republique);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-family:inherit;font-size:1rem;font-weight:600;transition:all .2s}button:hover{transform:translateY(-1px)}button:active{transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}.container{flex-direction:column;max-width:800px;min-height:100vh;margin:0 auto;padding:20px;display:flex}.header{background:var(--bleu-republique);color:#fff;text-align:center;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:16px 20px;display:flex}.header h1{font-size:1.5rem;font-weight:700}.header a{color:#fff;border:1px solid #ffffff4d;border-radius:8px;padding:8px 16px;font-size:.9rem;text-decoration:none}.header a:hover{background:#ffffff26;text-decoration:none}.vote-nav{justify-content:center;align-items:center;gap:16px;padding:16px 0;display:flex}.vote-nav button{background:var(--bleu-republique);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.5rem;display:flex}.vote-nav button:hover{background:#00336e}.vote-nav .nav-info{font-size:1.1rem;font-weight:600}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:20px;box-shadow:0 1px 3px #0000001a}.vote-info h2{margin-bottom:12px;font-size:1.15rem}.legislative-link{color:var(--bleu-republique);align-items:center;gap:6px;margin-bottom:16px;font-weight:500;display:inline-flex}.divider{background:var(--border);height:1px;margin:16px 0}.results-summary h3{margin-bottom:12px;font-size:1.05rem;font-weight:700}.result-row{border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:4px;padding:8px 16px;display:flex}.result-row .category-label{font-size:1rem}.result-row .count{font-size:.95rem;font-weight:700}.result-row.pour .category-label,.result-row.pour .count{color:var(--green)}.result-row.contre .category-label,.result-row.contre .count{color:var(--red)}.result-row.abstention .category-label,.result-row.abstention .count{color:var(--abstention)}.result-row.non-votant .category-label,.result-row.non-votant .count{color:var(--non-votant)}.senator-category{border:1px solid var(--border);border-radius:8px;margin-bottom:12px;overflow:hidden}.senator-category summary{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:14px 16px;font-size:1rem;font-weight:600;list-style:none;display:flex}.senator-category summary::-webkit-details-marker{display:none}.senator-category summary:before{content:"▸";font-size:.8rem;transition:transform .2s}.senator-category[open] summary:before{transform:rotate(90deg)}.senator-list{padding:0;list-style:none}.senator-list li{border-top:1px solid var(--border);cursor:pointer;padding:10px 16px;font-size:.95rem;transition:background .15s}.senator-list li:hover{background:var(--bg)}.senator-list a{width:100%;display:block}.vote-buttons{flex-shrink:0;justify-content:center;gap:16px;padding:20px 0;display:flex}.vote-buttons button{border-radius:10px;padding:12px 32px;font-size:1.05rem}.vote-buttons .btn-pour{background:var(--green);color:#fff}.vote-buttons .btn-pour:hover{background:#15803d}.vote-buttons .btn-pour.selected{outline-offset:2px;outline:3px solid #166534}.vote-buttons .btn-contre{background:var(--red);color:#fff}.vote-buttons .btn-contre:hover{background:#b91c1c}.vote-buttons .btn-contre.selected{outline-offset:2px;outline:3px solid #991b1b}.vote-counter{text-align:center;padding:8px;font-size:2rem;font-weight:700}.loading,.error,.empty{text-align:center;color:var(--text-muted);padding:40px}.error{color:var(--red)}.date-display{color:var(--text-muted);text-align:center;padding:8px 0;font-size:1rem}.vote-list{list-style:none}.vote-list-item{background:var(--card-bg);border:1px solid var(--border);cursor:pointer;border-radius:10px;margin-bottom:10px;padding:16px 20px;transition:all .2s}.vote-list-item:hover{border-color:var(--bleu-republique);box-shadow:0 2px 8px #003f871a}.vote-list-item .vote-date{color:var(--text-muted);margin-bottom:4px;font-size:.85rem}.vote-list-item .vote-question{color:var(--text);font-size:1rem;font-weight:500}.vote-list-item .vote-status{border-radius:12px;margin-top:6px;padding:2px 10px;font-size:.8rem;display:inline-block}.vote-list-item .vote-status.pour{color:#166534;background:#dcfce7}.vote-list-item .vote-status.contre{color:#991b1b;background:#fee2e2}.ranking-list{list-style:none}.ranking-item{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;align-items:center;gap:16px;margin-bottom:8px;padding:14px 18px;display:flex}.ranking-position{color:var(--text-muted);text-align:center;min-width:32px;font-size:1.3rem;font-weight:700}.ranking-position.top-3{color:var(--bleu-republique)}.ranking-name{flex:1;font-size:1rem;font-weight:500}.ranking-score{color:var(--bleu-republique);font-size:1.1rem;font-weight:700}.ranking-bar{background:var(--border);border-radius:4px;width:100px;height:8px;overflow:hidden}.ranking-bar-fill{background:var(--bleu-republique);border-radius:4px;height:100%;transition:width .3s}.user-input-section{background:var(--card-bg);border:1px solid var(--border);text-align:center;border-radius:12px;margin-bottom:20px;padding:24px}.user-input-section h2{margin-bottom:8px;font-size:1.2rem}.user-input-section p{color:var(--text-muted);margin-bottom:16px}.user-input-section input{border:1px solid var(--border);border-radius:8px;width:100%;max-width:300px;margin-bottom:12px;padding:10px 14px;font-family:inherit;font-size:1rem}.user-input-section input:focus{border-color:var(--bleu-republique);outline:none}.user-input-section button{background:var(--bleu-republique);color:#fff;padding:10px 28px}.user-input-section button:hover{background:#00336e}.back-link{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:16px;font-size:.9rem;display:inline-flex}.back-link:hover{color:var(--bleu-republique)}.flex-spacer{flex:1}
