@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap";:root{--bg-primary: #0a0e1a;--bg-secondary: #111827;--bg-card: #1a2236;--bg-card-hover: #1e2844;--border-color: rgba(99, 128, 255, .15);--text-primary: #f0f4ff;--text-secondary: #8b99c4;--text-muted: #5b6a94;--accent-blue: #6380ff;--accent-cyan: #38bdf8;--accent-green: #22d3a8;--accent-red: #f43f5e;--accent-amber: #f59e0b;--accent-purple: #a78bfa;--gradient-primary: linear-gradient(135deg, #6380ff, #38bdf8);--gradient-green: linear-gradient(135deg, #22d3a8, #2dd4bf);--gradient-red: linear-gradient(135deg, #f43f5e, #fb7185);--shadow-lg: 0 20px 60px rgba(0, 0, 0, .4);--shadow-glow-blue: 0 0 30px rgba(99, 128, 255, .2);--shadow-glow-green: 0 0 20px rgba(34, 211, 168, .15);--shadow-glow-red: 0 0 20px rgba(244, 63, 94, .15);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}.header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:0 2rem;height:64px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-logo{display:flex;align-items:center;gap:.75rem}.header-logo .icon{width:36px;height:36px;background:var(--gradient-primary);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.2rem}.header-logo h1{font-size:1.25rem;font-weight:700;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-nav{display:flex;gap:.5rem}.header-nav a{text-decoration:none;color:var(--text-secondary);padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;transition:all .2s}.header-nav a:hover,.header-nav a.active{color:var(--text-primary);background:#6380ff1a}.header-right{display:flex;align-items:center;gap:1rem}.datetime-display{display:flex;align-items:center;gap:.75rem;font-size:.875rem;color:var(--text-secondary);background:#6380ff14;padding:.4rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--border-color)}.datetime-display .date{font-weight:500}.datetime-display .time{font-weight:600;color:var(--accent-cyan);font-variant-numeric:tabular-nums}.main-content{flex:1;padding:1.5rem 2rem;max-width:1400px;margin:0 auto;width:100%}.session-form-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem;box-shadow:var(--shadow-glow-blue)}.session-form-card h2{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.form-row{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-size:.75rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.form-group input,.form-group select{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.6rem .8rem;color:var(--text-primary);font-size:.875rem;font-family:inherit;outline:none;transition:border-color .2s;min-width:160px}.form-group input:focus,.form-group select:focus{border-color:var(--accent-blue)}.form-group input[type=text]{min-width:280px}.segmented-control{display:flex;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:3px;gap:3px}.segmented-item{flex:1;padding:.5rem 1rem;font-size:.8rem;font-weight:600;color:var(--text-muted);border-radius:calc(var(--radius-sm) - 2px);cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.4rem;white-space:nowrap}.segmented-item:hover{color:var(--text-secondary)}.segmented-item.active{background:var(--bg-card);color:var(--text-primary);box-shadow:0 2px 8px #0003}.segmented-item.active[data-type=named]{border-left:3px solid var(--accent-cyan)}.segmented-item.active[data-type=anonymous]{border-left:3px solid var(--accent-purple)}.form-toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-switch{width:44px;height:24px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;position:relative;transition:all .3s;cursor:pointer}.toggle-switch:after{content:"";width:18px;height:18px;background:var(--text-secondary);border-radius:50%;position:absolute;top:2px;left:2px;transition:all .3s}.toggle-switch.active{background:var(--accent-blue);border-color:var(--accent-blue)}.toggle-switch.active:after{left:22px;background:#fff}.toggle-label{font-size:.875rem;color:var(--text-secondary)}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1.2rem;border:none;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s;text-decoration:none}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:0 4px 15px #6380ff4d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #6380ff66}.btn-success{background:var(--gradient-green);color:#fff;box-shadow:0 4px 15px #22d3a84d}.btn-success:hover{transform:translateY(-1px);box-shadow:0 6px 20px #22d3a866}.btn-danger{background:var(--gradient-red);color:#fff;box-shadow:0 4px 15px #f43f5e4d}.btn-danger:hover{transform:translateY(-1px);box-shadow:0 6px 20px #f43f5e66}.btn-outline{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.btn-outline:hover{background:#6380ff1a;color:var(--text-primary);border-color:var(--accent-blue)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.voting-control-bar{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;margin-bottom:1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.session-info{display:flex;flex-direction:column;gap:.25rem}.session-title{font-size:1.1rem;font-weight:700;color:var(--text-primary)}.session-meta{display:flex;gap:1rem;font-size:.8rem;color:var(--text-muted)}.session-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:999px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.badge-anonymous{background:#a78bfa26;color:var(--accent-purple)}.badge-named{background:#38bdf826;color:var(--accent-cyan)}.badge-active{background:#22d3a826;color:var(--accent-green);animation:pulse-badge 2s infinite}.badge-pending{background:#f59e0b26;color:var(--accent-amber)}.badge-ended{background:#8b99c426;color:var(--text-secondary)}@keyframes pulse-badge{0%,to{opacity:1}50%{opacity:.6}}.control-actions{display:flex;gap:.75rem;align-items:center}.countdown-container{display:flex;align-items:center;gap:1rem}.countdown-timer{position:relative;width:80px;height:80px}.countdown-svg{transform:rotate(-90deg);width:80px;height:80px}.countdown-bg{fill:none;stroke:var(--bg-primary);stroke-width:4}.countdown-progress{fill:none;stroke-width:4;stroke-linecap:round;transition:stroke-dashoffset 1s linear,stroke .5s}.countdown-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums}.countdown-warning{color:var(--accent-amber)}.countdown-danger{color:var(--accent-red);animation:blink .5s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.stats-bar{display:flex;gap:1rem;margin-bottom:1.5rem}.stat-card{flex:1;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem 1.25rem;display:flex;align-items:center;gap:1rem;transition:all .3s}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow-blue)}.stat-icon{width:48px;height:48px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.4rem}.stat-icon.agree{background:#22d3a826}.stat-icon.disagree{background:#f43f5e26}.stat-icon.pending{background:#8b99c426}.stat-icon.total{background:#6380ff26}.stat-info{display:flex;flex-direction:column}.stat-value{font-size:1.75rem;font-weight:800;line-height:1}.stat-value.agree{color:var(--accent-green)}.stat-value.disagree{color:var(--accent-red)}.stat-value.pending-val{color:var(--text-secondary)}.stat-value.total-val{color:var(--accent-blue)}.stat-label{font-size:.75rem;font-weight:500;color:var(--text-muted);margin-top:.2rem}.vote-progress{margin-bottom:1.5rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem 1.25rem}.progress-bar-container{width:100%;height:12px;background:var(--bg-primary);border-radius:6px;overflow:hidden;display:flex}.progress-agree{height:100%;background:var(--gradient-green);transition:width .5s ease}.progress-disagree{height:100%;background:var(--gradient-red);transition:width .5s ease}.progress-labels{display:flex;justify-content:space-between;margin-top:.5rem;font-size:.8rem;color:var(--text-secondary)}.legislator-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.6rem;margin-bottom:1.5rem}.legislator-cell{background:var(--bg-card);border:2px solid var(--border-color);border-radius:var(--radius-sm);padding:.6rem;text-align:center;cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.legislator-cell:hover{transform:translateY(-2px);border-color:var(--accent-blue);box-shadow:var(--shadow-glow-blue)}.legislator-cell.voted-agree{border-color:var(--accent-green);background:#22d3a814;box-shadow:var(--shadow-glow-green)}.legislator-cell.voted-disagree{border-color:var(--accent-red);background:#f43f5e14;box-shadow:var(--shadow-glow-red)}.legislator-cell.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.legislator-seat{font-size:.65rem;font-weight:600;color:var(--text-muted);margin-bottom:.2rem}.legislator-name{font-size:.85rem;font-weight:600;color:var(--text-primary);line-height:1.2}.legislator-vote-icon{font-size:1.2rem;margin-top:.3rem}.vote-actions{display:flex;gap:.3rem;margin-top:.4rem;justify-content:center}.vote-btn{padding:.25rem .5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-secondary);font-size:.7rem;font-weight:600;cursor:pointer;transition:all .2s}.vote-btn.agree-btn:hover,.vote-btn.agree-btn.active{background:#22d3a833;border-color:var(--accent-green);color:var(--accent-green)}.vote-btn.disagree-btn:hover,.vote-btn.disagree-btn.active{background:#f43f5e33;border-color:var(--accent-red);color:var(--accent-red)}.result-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem}.result-section h3{font-size:1rem;font-weight:600;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.donut-chart{display:flex;align-items:center;justify-content:center;gap:3rem}.donut-svg{width:180px;height:180px;transform:rotate(-90deg)}.donut-segment{transition:stroke-dasharray .8s ease,stroke-dashoffset .8s ease}.donut-legend{display:flex;flex-direction:column;gap:1rem}.legend-item{display:flex;align-items:center;gap:.75rem}.legend-color{width:14px;height:14px;border-radius:3px}.legend-label{color:var(--text-secondary);font-size:.875rem}.legend-value{font-weight:700;font-size:1.1rem;color:var(--text-primary);margin-left:.5rem}.history-page h2{font-size:1.25rem;font-weight:700;margin-bottom:1.5rem;display:flex;align-items:center;gap:.5rem}.history-list{display:flex;flex-direction:column;gap:.75rem}.history-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem 1.5rem;transition:all .2s;cursor:pointer}.history-card:hover{border-color:var(--accent-blue);background:var(--bg-card-hover);transform:translate(4px)}.history-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.history-card-title{font-size:1rem;font-weight:600}.history-card-date{font-size:.8rem;color:var(--text-muted)}.history-card-stats{display:flex;gap:1.5rem;font-size:.875rem}.history-stat{display:flex;align-items:center;gap:.35rem}.history-stat.agree{color:var(--accent-green)}.history-stat.disagree{color:var(--accent-red)}.history-stat.abstain{color:var(--text-muted)}.history-mini-bar{width:150px;height:6px;background:var(--bg-primary);border-radius:3px;overflow:hidden;display:flex;margin-left:auto}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .2s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:2rem;max-width:700px;width:90%;max-height:80vh;overflow-y:auto;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.modal-close{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:.25rem;transition:color .2s}.modal-close:hover{color:var(--text-primary)}.vote-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem}.vote-detail-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-card);border-radius:var(--radius-sm);font-size:.85rem}.vote-detail-item.agree{border-left:3px solid var(--accent-green)}.vote-detail-item.disagree{border-left:3px solid var(--accent-red)}.empty-state{text-align:center;padding:4rem 2rem;color:var(--text-muted)}.empty-state .icon{font-size:3rem;margin-bottom:1rem}.empty-state p{font-size:1rem}@media(max-width:768px){.header{padding:0 1rem}.main-content{padding:1rem}.form-row{flex-direction:column}.form-group input[type=text]{min-width:100%}.stats-bar{flex-wrap:wrap}.stat-card{min-width:calc(50% - .5rem)}.legislator-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.voting-control-bar{flex-direction:column;align-items:flex-start}.donut-chart{flex-direction:column;gap:1.5rem}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent-blue)}.toast-container{position:fixed;top:80px;right:1.5rem;z-index:300;display:flex;flex-direction:column;gap:.5rem}.toast{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.75rem 1.25rem;font-size:.875rem;box-shadow:var(--shadow-lg);animation:slideInRight .3s ease;display:flex;align-items:center;gap:.5rem}.toast.success{border-color:var(--accent-green)}.toast.error{border-color:var(--accent-red)}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.loading{display:flex;align-items:center;justify-content:center;padding:3rem}.spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--accent-blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.result-announcement{text-align:center;padding:2rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin-bottom:1.5rem;animation:fadeIn .5s}.result-verdict{font-size:2rem;font-weight:900;margin-bottom:.5rem}.result-verdict.passed{color:var(--accent-green)}.result-verdict.rejected{color:var(--accent-red)}.result-verdict.tied{color:var(--accent-amber)}
