:root{--bg-gradient-start:#667eea;--bg-gradient-end:#764ba2;--text-primary:#ffffffde;--text-secondary:#ffffffd9;--card-bg:#ffffff1a;--card-border:#fff3;--card-hover-bg:#ffffff26;--input-bg:#ffffff1a;--input-border:#ffffff4d;--input-focus-border:#fff9;--input-focus-shadow:#667eea80;--button-bg:#fff3;--button-border:#ffffff4d;--button-hover-bg:#ffffff4d;--link-color:#a5b4fc;--link-hover-color:#c7d2fe;--success-color:#4caf50;--success-bg:#4caf5033;--success-border:#4caf5066;--warning-color:#ffc107;--warning-bg:#ffc10733;--warning-border:#ffc10766;--error-color:#ff6b6b;--error-bg:#ff6b6b33;--error-border:#ff6b6b;--shadow-light:#0000001a;--shadow-medium:#0003;--shadow-heavy:#0000004d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text-primary);background:linear-gradient(135deg, var(--bg-gradient-start) 0%, var(--bg-gradient-end) 100%);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root.dark-mode{--bg-gradient-start:#0f0f23;--bg-gradient-end:#1a1a2e;--text-primary:#e0e0e0;--text-secondary:#b0b0b0;--card-bg:#1e1e32cc;--card-border:#6464784d;--card-hover-bg:#28283ce6;--input-bg:#141423cc;--input-border:#64647866;--input-focus-border:#6495ed99;--input-focus-shadow:#6495ed80;--button-bg:#28283ccc;--button-border:#64647866;--button-hover-bg:#323246e6;--link-color:#6495ed;--link-hover-color:#7ba7f0;--success-color:#66bb6a;--success-bg:#66bb6a26;--success-border:#66bb6a4d;--warning-color:#ffa726;--warning-bg:#ffa72626;--warning-border:#ffa7264d;--error-color:#ef5350;--error-bg:#ef535026;--error-border:#ef535066;--shadow-light:#0000004d;--shadow-medium:#00000080;--shadow-heavy:#000000b3}a{color:var(--link-color);-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{color:var(--link-hover-color)}body{display:justify;background:linear-gradient(135deg, var(--bg-gradient-start) 0%, var(--bg-gradient-end) 100%);min-width:100vw;min-height:100vh;color:var(--text-primary);margin:0}html{background:linear-gradient(135deg, var(--bg-gradient-start) 0%, var(--bg-gradient-end) 100%)}h1{font-size:3.2em;line-height:1.1}button{cursor:pointer;background-color:#1a1a1a;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme:light){:root{color:var(--text-primary);background:linear-gradient(135deg, var(--bg-gradient-start) 0%, var(--bg-gradient-end) 100%)}html,body{background:linear-gradient(135deg, var(--bg-gradient-start) 0%, var(--bg-gradient-end) 100%)}a:hover{color:var(--link-hover-color)}}.visually-hidden,.visually-hidden-focusable{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visually-hidden-focusable:focus{clip:auto;width:auto;height:auto;position:static;overflow:visible}.skip-to-main{color:#fff;z-index:10000;background:#000;padding:8px 16px;font-weight:600;text-decoration:none;transition:top .1s;position:absolute;top:-40px;left:0}.skip-to-main:focus{top:0}.dark-mode-toggle{background:var(--button-bg);border:2px solid var(--button-border);color:var(--text-primary);cursor:pointer;white-space:nowrap;box-shadow:0 2px 8px var(--shadow-medium);border-radius:10px;align-items:center;gap:.5rem;padding:.6rem 1rem;font-size:.95rem;font-weight:600;transition:all .3s;display:flex}.dark-mode-toggle:hover{background:var(--button-hover-bg);border-color:var(--input-focus-border);box-shadow:0 4px 12px var(--shadow-medium);transform:translateY(-2px)}.dark-mode-toggle svg{width:20px;height:20px;transition:transform .3s}.dark-mode-toggle:hover svg{transform:rotate(15deg)}.toggle-label{font-size:.9rem;font-weight:600}@media (width<=768px){.dark-mode-toggle{padding:.5rem .8rem;font-size:.85rem}.dark-mode-toggle svg{width:18px;height:18px}.toggle-label{font-size:.85rem}}@media (width<=480px){.toggle-label{display:none}.dark-mode-toggle{padding:.6rem}}.login-container{background:linear-gradient(135deg, var(--bg-gradient-start) 0%, var(--bg-gradient-end) 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.dark-mode-toggle-wrapper{margin-bottom:20px}.login-header{text-align:center;margin-bottom:30px}.login-header h1{text-shadow:2px 2px 4px #0000004d;color:var(--text-primary);margin-bottom:10px;font-size:2.5rem}.subtitle{opacity:.9;color:var(--text-secondary);font-size:1.1rem}.login-form{background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:100%;max-width:450px;box-shadow:0 8px 32px var(--shadow-heavy);border-radius:20px;padding:40px}.form-group{margin-bottom:25px}.form-group label{color:var(--text-primary);margin-bottom:8px;font-size:1rem;font-weight:600;display:block}.form-control{border:2px solid var(--input-border);background:var(--input-bg);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:12px;padding:15px;font-size:1rem;transition:all .3s}.form-control::placeholder{color:var(--text-secondary)}.form-control:focus{border-color:var(--input-focus-border);background:var(--card-hover-bg);box-shadow:0 0 0 3px var(--card-border);outline:none}.form-control.error{border-color:var(--error-border);background:var(--error-bg)}.help-text{opacity:.8;color:var(--text-secondary);margin-top:8px;font-size:.9rem;line-height:1.4}.error-message{color:var(--error-color);margin-top:8px;font-size:.9rem}.general-error{background:var(--error-bg);border:1px solid var(--error-border);text-align:center;border-radius:8px;margin-bottom:20px;padding:12px}.role-explanation{background:var(--card-bg);border-radius:12px;margin:25px 0;padding:20px}.option-divider{opacity:.6;align-items:center;margin:20px 0;display:flex}.option-divider:before,.option-divider:after{content:"";background:var(--card-border);flex:1;height:1px}.option-divider span{color:var(--text-primary);padding:0 15px;font-size:.9rem}.role-info{text-align:left;border-radius:8px;padding:15px}.role-info.spectator{background:var(--warning-bg);border:1px solid var(--warning-border)}.role-info.voter{background:var(--success-bg);border:1px solid var(--success-border)}.role-info h4{color:var(--text-primary);margin-bottom:8px;font-size:1rem}.role-info ul{opacity:.9;color:var(--text-primary);margin-left:20px;font-size:.9rem}.role-info li{margin-bottom:4px}.captcha-container{margin:30px 0}.captcha-label{color:var(--text-primary);margin-bottom:8px;font-size:1rem;font-weight:600;display:block}.captcha-wrapper{background:var(--card-bg);border-radius:10px;justify-content:center;margin:15px 0;padding:10px;display:flex}.captcha-help{text-align:center;opacity:.75;margin-top:10px;font-size:.85rem}.btn-submit{justify-content:center;align-items:center;width:100%;margin-top:20px;display:flex}.btn-submit:disabled{opacity:.5;cursor:not-allowed}.session-type-group{border:1px solid var(--input-border);border-radius:12px;margin-bottom:25px;padding:15px}.session-type-group legend{color:var(--text-primary);padding:0 8px;font-weight:600}.session-type-options{flex-direction:column;gap:10px;margin-top:8px;display:flex}.session-type-option{border:2px solid var(--input-border);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:10px;transition:border-color .2s,background .2s;display:flex}.session-type-option:hover{border-color:var(--input-focus-border);background:var(--card-hover-bg)}.session-type-option input[type=radio]{cursor:pointer;margin:0}@media (width<=480px){.login-container{padding:15px}.login-form{padding:30px 20px}.login-header h1{font-size:2rem}}.consensus-notification{z-index:9999;opacity:0;pointer-events:none;transition:all .5s cubic-bezier(.68,-.55,.265,1.55);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)scale(.8)}.consensus-notification.visible{opacity:1;transform:translate(-50%,-50%)scale(1)}.consensus-content{pointer-events:none;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(135deg,#4caf50f2,#388e3cf2);border:3px solid #ffffff4d;border-radius:24px;flex-direction:column;align-items:center;gap:1rem;min-width:400px;max-width:600px;padding:3rem 4rem;animation:.6s cubic-bezier(.68,-.55,.265,1.55) bounceIn;display:flex;position:relative;box-shadow:0 20px 60px #0006}@keyframes bounceIn{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.consensus-icon{filter:drop-shadow(0 4px 8px #0000004d);font-size:5rem;animation:1s ease-in-out infinite alternate rotate}@keyframes rotate{0%{transform:rotate(-10deg)scale(1)}to{transform:rotate(10deg)scale(1.1)}}.consensus-message{text-align:center;color:#fff}.consensus-message h3{text-shadow:2px 2px 8px #0000004d;margin:0 0 .5rem;font-size:2.5rem;font-weight:700;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.consensus-message p{opacity:.95;text-shadow:1px 1px 4px #0000004d;margin:0;font-size:1.3rem}.consensus-message strong{color:gold;text-shadow:2px 2px 4px #00000080;background:#fff3;border-radius:8px;margin:0 .3rem;padding:.2rem .8rem;font-size:1.8rem;font-weight:800;display:inline-block}.consensus-close{cursor:pointer;color:#fff;pointer-events:auto;background:#fff3;border:2px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-size:1.5rem;transition:all .3s;display:flex;position:absolute;top:1rem;right:1rem}.consensus-close:hover{background:#ffffff4d;transform:rotate(90deg)}.consensus-confetti{pointer-events:none;border-radius:24px;position:absolute;inset:0;overflow:hidden}.confetti{opacity:0;width:10px;height:10px;animation:3s ease-out forwards confettiFall;position:absolute;top:-10px}@keyframes confettiFall{0%{opacity:1;top:-10px;transform:translate(0)rotate(0)}to{opacity:0;transform:translateX(calc(var(--random-x,0) * 1px)) rotateZ(720deg);top:100%}}@media (width<=768px){.consensus-content{min-width:300px;max-width:90vw;padding:2rem 2.5rem}.consensus-icon{font-size:4rem}.consensus-message h3{font-size:2rem}.consensus-message p{font-size:1.1rem}.consensus-message strong{font-size:1.5rem}}@media (width<=480px){.consensus-content{min-width:280px;padding:1.5rem 2rem}.consensus-icon{font-size:3rem}.consensus-message h3{font-size:1.75rem}.consensus-message p{font-size:1rem}.consensus-message strong{padding:.1rem .5rem;font-size:1.3rem}.consensus-close{width:44px;height:44px;font-size:1.2rem}}@media (prefers-reduced-motion:reduce){.consensus-notification,.consensus-content,.consensus-icon,.consensus-message h3{animation:none}.consensus-confetti{display:none}.confetti{animation:none}}.dialog-overlay{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog-container{border:1px solid var(--card-border);background-color:#5a4a8a;border-radius:12px;max-width:90vw;max-height:90vh;padding:24px;position:relative;overflow:auto;box-shadow:0 10px 40px #0000004d}:root.dark-mode .dialog-container{background-color:#1e1e32}.spectator-view{background:linear-gradient(135deg, var(--bg-gradient-start) 0%, var(--bg-gradient-end) 100%);width:100%;min-height:100vh;color:var(--text-primary);padding:2rem 0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.session-status-card{background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--card-border);width:calc(100% - 4rem);max-width:1400px;box-shadow:0 8px 32px var(--shadow-light);border-radius:16px;margin:0 auto 2rem;padding:2rem}.session-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.section-title{text-align:center;color:var(--text-primary);flex:1;margin:0;font-size:1.5rem;font-weight:600}.status-grid{text-align:center;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;display:grid}.status-item{flex-direction:column;gap:.5rem;display:flex}.status-label{color:var(--text-secondary);opacity:.8;font-size:1rem;font-weight:500}.status-value{color:var(--text-primary);font-size:1.5rem;font-weight:700}.session-id-display{justify-content:center;align-items:center;gap:.75rem;display:flex}.copy-btn{background:var(--button-bg);color:var(--text-primary);cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;min-width:40px;height:40px;padding:.5rem;font-size:1rem;transition:all .3s;display:flex}.copy-btn.success{background:var(--success-color);color:#fff}.participants-section{width:calc(100% - 4rem);max-width:1400px;margin:0 auto 2rem}.participants-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-top:1rem;display:grid}.participant-card{background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid var(--card-border);border-radius:12px;justify-content:space-between;align-items:center;padding:1.5rem;transition:all .3s;display:flex}.participant-card.excluded{opacity:.65;border-color:var(--card-border);background:var(--card-bg)}.participant-actions{flex-direction:column;align-items:flex-end;gap:.5rem;display:flex}.exclude-toggle{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.4rem;font-size:.85rem;display:inline-flex}.exclude-toggle input{cursor:pointer;width:16px;height:16px;accent-color:var(--success-color);margin:0}.vote-status.excluded{color:var(--text-secondary);font-size:.95rem;font-style:italic}.participant-info{flex-direction:column;align-items:flex-start;gap:.25rem;display:flex}.participant-role{color:var(--text-secondary);font-size:.9rem;font-style:italic}.vote-indicator{justify-content:center;align-items:center;min-width:80px;display:flex}.vote-value{background:var(--success-color);color:#fff;border:2px solid var(--success-color);border-radius:8px;padding:.5rem 1rem;font-size:1.2rem;font-weight:700;transition:all .3s}.vote-value.hidden{background:var(--warning-color);border-color:var(--warning-color)}.vote-value.revealed{background:var(--success-color);border-color:var(--success-color);animation:.5s revealPulse}@keyframes revealPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.vote-status.waiting{color:var(--text-secondary);font-size:1.5rem}.no-participants{text-align:center;background:var(--card-bg);border:2px dashed var(--card-border);border-radius:12px;grid-column:1/-1;padding:3rem 1rem}.no-participants p{margin:.5rem 0;font-size:1.1rem}.no-participants p:first-child{font-size:1.3rem;font-weight:600}.session-controls{flex-direction:column;gap:1rem;width:calc(100% - 4rem);max-width:1400px;margin:0 auto 2rem;display:flex}.controls-row{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.primary-controls .btn{min-width:180px}.sharing-controls .btn{min-width:160px}.btn-secondary:hover:not(:disabled){background:var(--button-hover-bg);box-shadow:0 6px 20px var(--shadow-medium);transform:translateY(-2px)}.btn-outline{color:var(--text-primary);border:2px solid var(--card-border);white-space:nowrap;background:0 0}.results-section{background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--card-border);border-radius:16px;width:calc(100% - 4rem);max-width:1400px;margin:0 auto 2rem;padding:2rem}.results-content{margin-top:1rem}.summary-stats{flex-wrap:wrap;justify-content:center;gap:2rem;margin-bottom:1rem;display:flex}.stat-item{flex-direction:column;align-items:center;gap:.5rem;display:flex}.stat-label{color:var(--text-secondary);font-size:1rem}.stat-value{color:var(--text-primary);font-size:1.3rem;font-weight:700}.spectator-guide{background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--card-border);border-radius:16px;width:calc(100% - 4rem);max-width:1400px;margin:0 auto 2rem;padding:2rem}.spectator-guide h3{text-align:center;color:var(--text-primary);margin:0 0 1.5rem;font-size:1.3rem}.guide-content{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;display:grid}.guide-item{background:var(--card-hover-bg);border-radius:8px;align-items:center;gap:1rem;padding:1rem;display:flex}.guide-icon{min-width:30px;font-size:1.5rem}.guide-text{color:var(--text-primary);font-size:1rem}@media (width<=1200px){.session-status-card,.participants-section,.session-controls,.results-section,.spectator-guide{width:calc(100% - 2rem)}}@media (width<=768px){.spectator-view{padding:1rem 0}.session-status-card,.participants-section,.session-controls,.results-section,.spectator-guide{width:calc(100% - 1rem);padding:1.5rem}.status-grid{grid-template-columns:repeat(2,1fr);gap:1rem}.participants-grid{grid-template-columns:1fr}.controls-row{flex-direction:column;align-items:stretch}.btn{width:100%}.guide-content{grid-template-columns:1fr}}@media (width<=480px){.status-grid{grid-template-columns:1fr}.summary-stats{flex-direction:column;gap:1rem}}.btn-leave-session{white-space:nowrap;min-width:auto;padding:.625rem 1rem;font-size:.9rem}.btn-danger{color:#fff;background:linear-gradient(135deg,#f44336,#d32f2f);border:none}.btn-danger:hover:not(:disabled){background:linear-gradient(135deg,#d32f2f,#c62828);transform:translateY(-2px);box-shadow:0 6px 20px #f4433666}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.confirmation-buttons .btn{flex:1;padding:.875rem 1.5rem;font-size:1rem}@media (prefers-reduced-motion:reduce){.vote-value.revealed,.confirmation-overlay,.confirmation-dialog{animation:none}}.voter-view{flex-direction:column;align-items:center;width:100%;max-width:1400px;height:100%;min-height:0;margin:0 auto;padding:1rem;display:flex;overflow-y:auto}.voter-content{align-items:flex-start;gap:1rem;width:100%;display:flex}.voting-section{background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--card-border);box-shadow:0 8px 32px var(--shadow-light);border-radius:12px;flex-direction:column;flex:none;align-items:center;width:auto;padding:1rem;display:flex}.voting-section h3{text-align:center;color:var(--text-primary);margin-bottom:.75rem;font-size:1.25rem}.voting-cards{flex-direction:column;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.voting-row{justify-content:center;gap:.75rem;display:flex}.vote-card{border:3px solid var(--card-border);background:var(--card-bg);width:90px;height:120px;color:var(--text-primary);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 15px var(--shadow-heavy);border-radius:12px;justify-content:center;align-items:center;font-size:2.5rem;font-weight:900;line-height:1;transition:all .3s;display:flex}.vote-card:hover:not(:disabled){background:var(--card-hover-bg);box-shadow:0 4px 15px var(--input-focus-border);transform:translateY(-2px)scale(1.02)}.vote-card.selected{background:linear-gradient(135deg,#4caf50,#45a049);border-color:#4caf50;transform:translateY(-2px)scale(1.02);box-shadow:0 6px 20px #4caf5080}.vote-card:disabled{cursor:not-allowed;opacity:.5;transform:none}.vote-confirmation{text-align:center;color:var(--text-primary);background:var(--success-bg);border:1px solid var(--success-border);word-wrap:break-word;border-radius:8px;width:100%;margin-top:.5rem;padding:.5rem;font-size:.85rem}.vote-confirmation strong{color:var(--success-color);font-size:1rem;display:block}.vote-change-hint{opacity:.9;margin-top:.25rem;font-size:.75rem;display:block}.participants-section{background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--card-border);box-shadow:0 8px 32px var(--shadow-light);border-radius:12px;flex:auto;min-width:0;padding:1rem}.participants-section h3{text-align:center;color:var(--text-primary);margin-bottom:.75rem;font-size:1.25rem}.participants-list{grid-template-columns:1fr;gap:.5rem;display:grid}.participant-card{background:var(--card-bg);border:2px solid var(--card-border);border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem;transition:all .3s;display:flex}.participant-card.voted{border-color:var(--success-border);background:var(--success-bg)}.participant-card.waiting{border-color:var(--warning-border);background:var(--warning-bg)}.participant-name{color:var(--text-primary);font-size:1rem;font-weight:600}.vote-status{color:var(--text-primary);background:var(--card-hover-bg);border-radius:6px;padding:.4rem .75rem;font-size:.9rem;font-weight:600}.participant-card.voted .vote-status{background:var(--success-color);color:#fff}.participant-card.waiting .vote-status{background:var(--warning-bg);color:var(--text-secondary)}.participant-card.revealed{background:#ffffff14;border-color:#ffd70080}.vote-status.revealed-vote{color:#fff;text-align:center;letter-spacing:.5px;text-shadow:2px 2px 4px #0000004d;background:#4caf50;border:3px solid #4caf50;border-radius:8px;min-width:60px;padding:.5rem 1rem;font-size:1.5rem;font-weight:900;box-shadow:0 4px 15px #4caf5080,0 0 20px #4caf504d}.results-section{background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--card-border);width:100%;box-shadow:0 8px 32px var(--shadow-light);border-radius:12px;margin-top:1rem;padding:1rem}.results-section h3{text-align:center;color:var(--text-primary);margin-bottom:.75rem;font-size:1.25rem}.vote-summary{text-align:center;background:var(--success-bg);border:2px solid var(--success-border);border-radius:8px;padding:.75rem}.vote-summary p{color:var(--text-primary);margin:0;font-size:1rem}@media (width<=900px){.voter-content{flex-direction:column}.voting-section{width:100%;max-width:700px;margin:0 auto}.voting-cards{flex-flow:wrap;justify-content:center;gap:.75rem}.vote-card{width:140px;height:190px;font-size:3.5rem}.participants-section{width:100%;max-width:700px;margin:0 auto}}@media (width<=768px){.voter-view,.voting-section,.participants-section,.results-section{padding:1rem}.participants-list{grid-template-columns:1fr!important}}@media (width<=480px){.voting-cards{gap:.5rem}.vote-card{width:110px;height:150px;font-size:2.5rem}.participant-card{flex-direction:column;align-items:flex-start;gap:.5rem}.vote-status{text-align:center;width:100%}.vote-confirmation{font-size:.75rem}.vote-confirmation strong{font-size:.9rem}}.participant-card.cohort-rank-0 .vote-status.revealed-vote{background:linear-gradient(135deg,#4caf50,#2e7d32);border-color:#4caf50;box-shadow:0 4px 15px #4caf5080,0 0 20px #4caf504d}.participant-card.cohort-rank-1 .vote-status.revealed-vote{background:linear-gradient(135deg,#2196f3,#1565c0);border-color:#2196f3;box-shadow:0 4px 15px #2196f373,0 0 20px #2196f340}.participant-card.cohort-rank-2 .vote-status.revealed-vote{background:linear-gradient(135deg,#9c27b0,#6a1b9a);border-color:#9c27b0;box-shadow:0 4px 15px #9c27b073,0 0 20px #9c27b040}.participant-card.cohort-rank-3 .vote-status.revealed-vote{background:linear-gradient(135deg,#ff9800,#e65100);border-color:#ff9800;box-shadow:0 4px 15px #ff980073,0 0 20px #ff980040}.participant-card.cohort-unvoted .vote-status{opacity:.7}.participant-card.is-current-user{outline:2px solid var(--input-focus-border,#ffd54f);outline-offset:2px;box-shadow:0 0 0 1px #ffd54f40,0 4px 14px #ffd54f2e}.participant-name{align-items:center;gap:.4rem;display:inline-flex}.self-marker{filter:drop-shadow(0 0 4px #ffd54f99);font-size:1.4rem;line-height:1}.self-label{letter-spacing:.05em;text-transform:uppercase;background:var(--input-focus-border,#ffd54f);color:#1a1a1a;border-radius:999px;padding:.15rem .5rem;font-size:.7rem;font-weight:700;display:inline-block;box-shadow:0 1px 3px #0003}.connection-status-container{transition:transform .2s;display:inline-block;position:relative}.connection-status-container.clickable{cursor:pointer}.connection-status-container.clickable:hover{transform:scale(1.02)}.connection-status-container.clickable:active{transform:scale(.98)}.connection-status{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:24px;align-items:center;gap:12px;padding:10px 16px;font-size:14px;transition:all .3s;display:flex}.connection-status-container:hover .connection-status{background:#ffffff26;border-color:#ffffff4d;box-shadow:0 4px 12px #0000001a}.status-indicator{align-items:center;gap:12px;display:flex}.status-dot{border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;transition:all .3s;display:flex;position:relative;box-shadow:0 2px 8px #0003}.status-dot.pulsing{animation:2s infinite pulse}.status-dot.pulsing:after{content:"";opacity:.6;border:2px solid;border-radius:50%;animation:2s infinite ripple;position:absolute;inset:0}.status-icon{color:#fff;text-shadow:0 1px 2px #0000004d;font-size:12px;font-weight:700}.status-info{flex-direction:column;gap:2px;display:flex}.status-text{color:#fff;text-shadow:0 1px 2px #0003;font-size:14px;font-weight:600;line-height:1.2}.reconnect-attempts{color:#ffffffb3;font-size:11px;font-weight:400}.reconnect-btn{color:#fff;cursor:pointer;background:#3b82f6;border:none;border-radius:16px;min-height:44px;padding:6px 14px;font-size:12px;font-weight:600;transition:all .2s;box-shadow:0 2px 6px #3b82f64d}.reconnect-btn:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.reconnect-btn:active{transform:translateY(0)scale(.96)}.connection-tooltip{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;pointer-events:none;background:#000000f2;border:1px solid #ffffff1a;border-radius:12px;min-width:240px;max-width:320px;padding:12px 16px;animation:.2s tooltipFadeIn;position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0006}.connection-tooltip:before{content:"";border:8px solid #0000;border-bottom-color:#000000f2;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.tooltip-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.tooltip-icon{font-size:16px;font-weight:700}.tooltip-title{color:#fff;font-size:13px;font-weight:600}.tooltip-description{color:#ffffffd9;margin:0 0 8px;font-size:12px;line-height:1.4}.tooltip-details{background:#10b98126;border-left:3px solid #10b981;border-radius:6px;align-items:center;gap:6px;padding:6px 10px;display:flex}.tooltip-details .detail-icon{color:#10b981;font-size:14px}.tooltip-details span:last-child{color:#ffffffe6;font-size:11px;font-weight:500}.tooltip-warning{background:#ef444426;border-left:3px solid #ef4444;border-radius:6px;align-items:center;gap:6px;padding:6px 10px;display:flex}.tooltip-warning .warning-icon{color:#ef4444;font-size:14px;font-weight:700}.tooltip-warning span:last-child{color:#ffffffe6;font-size:11px;font-weight:500}@keyframes ripple{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(2)}}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%)translateY(-4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media (width<=768px){.connection-status{padding:8px 12px;font-size:13px}.status-dot{width:16px;height:16px}.status-icon{font-size:10px}.status-text{font-size:13px}.reconnect-btn{padding:5px 10px;font-size:11px}.connection-tooltip{min-width:200px;max-width:280px;padding:10px 12px}.tooltip-description{font-size:11px}}@media (prefers-contrast:high){.connection-status{border:2px solid #ffffff80}.status-text{text-shadow:none;font-weight:700}.connection-tooltip{border:2px solid #ffffff4d}}@media (prefers-reduced-motion:reduce){.status-dot.pulsing,.status-dot.pulsing:after{animation:none}.connection-status-container,.reconnect-btn{transition:none}.connection-tooltip{animation:none}}.app-header{background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--card-border);color:var(--text-primary);box-shadow:0 2px 10px var(--shadow-light);padding:1.5rem 2rem}.header-content{grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem;max-width:1400px;margin:0 auto;display:grid}.header-left{justify-content:flex-start;align-items:center;gap:1rem;display:flex}.title-version-group{flex-direction:column;gap:.25rem;display:flex}.app-title{color:var(--text-primary);text-shadow:3px 3px 6px var(--shadow-heavy);letter-spacing:.5px;margin:0;font-size:2.5rem;font-weight:800}.version-badge{color:var(--text-secondary);background:var(--card-bg);border:1px solid var(--card-border);cursor:help;border-radius:4px;width:fit-content;padding:.25rem .5rem;font-family:Courier New,monospace;font-size:.75rem;transition:all .3s}.version-badge:hover{background:var(--card-hover-bg);color:var(--text-primary)}.header-center{justify-content:center;align-items:center;display:flex}.session-info{flex-flow:wrap;justify-content:center;align-items:center;gap:1rem;display:flex}.session-detail{background:var(--card-bg);border:1px solid var(--card-border);box-shadow:0 2px 8px var(--shadow-medium);border-radius:10px;align-items:center;gap:.5rem;padding:.6rem 1.2rem;display:flex}.label{opacity:.8;font-size:.9rem;font-weight:500}.value{font-size:1.1rem;font-weight:700}.session-id{background:var(--button-bg);border-radius:6px;padding:.25rem .75rem;font-family:Courier New,monospace}.copy-btn{background:var(--button-bg);border:1px solid var(--button-border);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:.25rem .5rem;font-size:.9rem;transition:all .3s}.copy-btn:hover{background:var(--button-hover-bg);transform:translateY(-1px)}.copy-btn.success{background:var(--success-color);border-color:var(--success-color);color:#fff}.participant-count{align-items:center;gap:.5rem;display:flex}.header-right{justify-content:flex-end;align-items:center;gap:1rem;display:flex}.user-info{flex-direction:column;align-items:flex-end;gap:.25rem;display:flex}.welcome-text{opacity:.8;font-size:.85rem}.user-name{font-size:1.1rem;font-weight:700}.user-role{opacity:.8;font-size:.85rem;font-style:italic}.share-btn,.btn-logout,.btn-retro,.btn-share{background:var(--button-bg);border:2px solid var(--button-border);color:var(--text-primary);cursor:pointer;white-space:nowrap;box-shadow:0 2px 8px var(--shadow-medium);border-radius:10px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1.1rem;font-weight:700;transition:all .3s;display:flex}.share-btn:hover,.btn-share:hover{background:var(--success-bg);border-color:var(--success-border);box-shadow:0 4px 12px var(--shadow-medium);transform:translateY(-2px)}.btn-retro:hover{box-shadow:0 4px 12px var(--shadow-medium);background:linear-gradient(135deg,#2196f333,#1976d21a);border-color:#2196f3;transform:translateY(-2px)}.btn-logout:hover{background:var(--error-bg);border-color:var(--error-border);box-shadow:0 4px 12px var(--shadow-medium);transform:translateY(-2px)}@media (width<=1024px){.header-content{grid-template-columns:1fr;gap:1.5rem}.header-left{justify-content:center}.app-title{font-size:2rem}.header-center{order:2}.header-right{order:3;justify-content:center}.user-info{align-items:center}}@media (width<=768px){.app-header{padding:1rem}.app-title{font-size:1.75rem}.session-info{flex-direction:column;gap:.5rem}.session-detail{justify-content:center;width:100%}.header-right{flex-direction:column;gap:.75rem;width:100%}.share-btn,.btn-share,.btn-retro,.btn-logout{justify-content:center;width:100%;max-width:250px}}@media (width<=480px){.app-title{font-size:1.5rem}.version-badge{padding:.2rem .4rem;font-size:.65rem}.value{font-size:1rem}.session-id{font-size:.9rem}.share-btn,.btn-share,.btn-retro,.btn-logout{padding:.6rem 1.2rem;font-size:1rem}}.loading-container{text-align:center;justify-content:center;align-items:center;min-height:50vh;display:flex}.loading-spinner{border:4px solid #f3f3f3;border-top-color:#3498db;border-radius:50%;width:50px;height:50px;margin-bottom:20px;animation:2s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.loading-spinner{animation:none}}.session-ended-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;background:#000c;justify-content:center;align-items:center;animation:.3s session-ended-fade-in;display:flex;position:fixed;inset:0}.session-ended-notification{background:var(--card-bg,#fffffff2);text-align:center;border:2px solid var(--card-border,#fff3);border-radius:20px;width:calc(100% - 2rem);max-width:500px;padding:3rem;animation:.4s session-ended-slide-down;box-shadow:0 20px 60px #0006}.session-ended-notification h2{color:var(--text-primary,#333);margin:0 0 1rem;font-size:2rem}.session-ended-notification p{color:var(--text-secondary,#666);margin:.75rem 0;font-size:1.1rem;line-height:1.6}.session-ended-notification p:last-child{opacity:.8;font-style:italic}@keyframes session-ended-fade-in{0%{opacity:0}to{opacity:1}}@keyframes session-ended-slide-down{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.session-ended-overlay,.session-ended-notification{animation:none}}@media (width<=768px){.session-ended-overlay{padding:1rem}.session-ended-notification{padding:2rem 1.5rem}}.session-content{flex-direction:column;flex:1;display:flex}.session-content.spectator-mode{width:100%;max-width:100%;margin:0;padding:0}.connecting-container,.error-container{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:50vh;display:flex}.connecting-message h2,.error-message h2{color:#fff;margin-bottom:1rem}.connecting-message p,.error-message p{color:#fffc;margin-bottom:2rem}.retry-btn{color:#fff;cursor:pointer;background:#4caf50;border:none;border-radius:8px;padding:1rem 2rem;font-size:1rem;font-weight:600;transition:all .3s}.retry-btn:hover{background:#45a049;transform:translateY(-2px)}.game-session-error{color:#fff;text-align:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.connection-error{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:16px;max-width:500px;margin:0 auto;padding:3rem}.drawing-overlay{pointer-events:none;touch-action:none;z-index:5;width:100%;height:100%;position:absolute;inset:0}.drawing-overlay.tool-active{pointer-events:auto}.drawing-overlay.tool-active.tool-pen{cursor:crosshair}.drawing-overlay.tool-active.tool-highlighter{cursor:cell}.retro-results-board{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.5rem 0;display:grid}.retro-results-board-empty{text-align:center;color:var(--text-secondary);padding:3rem}.retro-board-column{background:var(--card-hover-bg);border:1px solid var(--card-border);border-radius:12px;flex-direction:column;min-height:200px;display:flex;overflow:hidden}.retro-board-column__header{text-transform:uppercase;letter-spacing:.5px;color:#fff;justify-content:space-between;align-items:center;padding:.75rem 1rem;font-size:.85rem;font-weight:700;display:flex}.retro-board-column__header h3{margin:0;font-size:.85rem}.retro-board-column__count{background:#ffffff40;border-radius:999px;padding:.125rem .5rem;font-size:.75rem}.retro-board-column__header--start{background:linear-gradient(135deg,#4caf50,#45a049)}.retro-board-column__header--stop{background:linear-gradient(135deg,#f44336,#d32f2f)}.retro-board-column__header--continue{background:linear-gradient(135deg,#2196f3,#1976d2)}.retro-board-column__cards{flex-direction:column;flex:1;gap:.75rem;max-height:60vh;padding:.75rem;display:flex;overflow-y:auto}.retro-board-column__empty{color:var(--text-secondary);text-align:center;margin:1rem 0 0;font-size:.9rem;font-style:italic}.retro-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;flex-direction:column;gap:.5rem;padding:.75rem;display:flex;position:relative;box-shadow:0 1px 2px #0000000d}.retro-card__header{color:var(--text-secondary);font-size:.85rem;font-weight:600}.retro-card__name{display:inline-block}.retro-card__body{white-space:pre-wrap;word-break:break-word;color:var(--text-primary);margin:0;font-size:.95rem;line-height:1.5}.retro-card__footer{justify-content:flex-end;display:flex}.retro-card__affirm{border:1px solid var(--card-border);background:var(--button-bg);color:var(--text-primary);cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;min-height:36px;padding:.35rem .75rem;font-size:.85rem;font-weight:600;transition:background .15s,border-color .15s,transform .1s;display:inline-flex;position:relative}.retro-card__affirm-burst{pointer-events:none;position:absolute;inset:0;overflow:visible}.retro-card__affirm-particle{opacity:0;will-change:transform, opacity;animation:retro-affirm-burst .75s cubic-bezier(.22, .61, .36, 1) var(--delay,0s) forwards;font-size:1.1rem;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.4)}@keyframes retro-affirm-burst{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)rotate(0)}15%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(0)}to{transform:translate(calc(-50% + var(--dx,0px)), calc(-50% + var(--dy,0px))) scale(.7) rotate(var(--rot,0deg));opacity:0}}@media (prefers-reduced-motion:reduce){.retro-card__affirm-burst{display:none}}.retro-card__affirm:hover:not(:disabled){background:var(--button-hover-bg);border-color:var(--input-focus-border)}.retro-card__affirm:active:not(:disabled){transform:translateY(1px)}.retro-card__affirm:disabled{cursor:not-allowed;opacity:.6}.retro-card__affirm--active{color:#fff;background:linear-gradient(135deg,#4caf50,#45a049);border-color:#45a049}.retro-card__affirm--active:hover:not(:disabled){background:linear-gradient(135deg,#45a049,#3d8c41);border-color:#3d8c41}.retro-card__affirm-label{font-weight:700}.retro-card__affirm-count{font-variant-numeric:tabular-nums;text-align:center;background:#00000026;border-radius:999px;min-width:1.5rem;padding:.05rem .5rem}.retro-card__affirm--active .retro-card__affirm-count{background:#ffffff4d}@media (width<=900px){.retro-results-board{grid-template-columns:1fr}.retro-board-column__cards{max-height:none}}.anonymous-feedback-section{margin:2rem 0}.anonymous-feedback-header{color:var(--text-primary);border-left:4px solid #9c27b0;margin-bottom:1rem;padding-left:.5rem;font-size:1.1rem;font-weight:700}.anonymous-feedback-list{flex-direction:column;gap:1rem;display:flex}.anonymous-feedback-card{background:var(--card-bg);border:1px solid var(--card-border);border-left:4px solid #9c27b0;border-radius:8px;padding:1rem 1.25rem}.anonymous-feedback-content{white-space:pre-wrap;word-break:break-word;color:var(--text-primary);line-height:1.6}@media (width<=768px){.anonymous-feedback-card{padding:.75rem 1rem}}.retro-summary{border-top:1px solid var(--card-border);margin-top:2rem;padding-top:2rem}.summary-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:1rem;display:flex}.summary-header label{color:var(--text-primary);margin:0;font-size:1.25rem;font-weight:600}.summary-hint{color:var(--text-secondary);font-size:.875rem;font-style:italic}.summary-editor{position:relative}.summary-editor textarea{border:2px solid var(--card-border);background:var(--input-bg);width:100%;color:var(--text-primary);resize:vertical;border-radius:12px;min-height:150px;padding:1rem;font-family:inherit;font-size:1rem;line-height:1.6;transition:all .3s}.summary-editor textarea:focus{border-color:var(--input-focus-border);box-shadow:0 0 0 3px var(--input-focus-shadow);outline:none}.summary-editor textarea::placeholder{color:var(--text-secondary);opacity:.7}.summary-editor .char-count{color:var(--text-secondary);background:var(--card-bg);border-radius:4px;padding:.25rem .5rem;font-size:.75rem;position:absolute;bottom:.75rem;right:1rem}.summary-editor .char-count.warning{color:#c66900}.summary-editor .char-count.limit{color:#f44336;font-weight:600}.summary-display{background:var(--card-hover-bg);border-radius:12px;min-height:100px;padding:1.5rem}.summary-display p{color:var(--text-primary);white-space:pre-wrap;word-break:break-word;margin:0;line-height:1.6}.summary-display .empty-summary{color:var(--text-secondary);text-align:center;font-style:italic}@media (width<=768px){.summary-header{flex-direction:column;align-items:flex-start}.summary-editor textarea{font-size:16px}}.retro-history-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0009;justify-content:center;align-items:center;padding:2rem;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.retro-history-modal{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;flex-direction:column;width:100%;max-width:600px;max-height:80vh;animation:.3s slideUp;display:flex;box-shadow:0 20px 60px #0000004d}.modal-header{border-bottom:1px solid var(--card-border);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.modal-header h2{color:var(--text-primary);margin:0;font-size:1.5rem}.close-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:2rem;line-height:1;transition:color .2s}.close-btn:hover{color:var(--text-primary)}.modal-content{flex:1;padding:1.5rem;overflow-y:auto}.empty-history{text-align:center;padding:3rem 1rem}.empty-icon{margin-bottom:1rem;font-size:4rem;display:block}.empty-history p{color:var(--text-primary);margin:.5rem 0}.empty-hint{color:var(--text-secondary);font-size:.9rem}.history-list{flex-direction:column;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.history-item{background:var(--card-hover-bg);cursor:pointer;border:2px solid #0000;border-radius:12px;padding:1rem;transition:all .2s}.history-item:hover{border-color:var(--input-focus-border);transform:translate(4px)}.history-item.selected{border-color:var(--success-color);background:#4caf501a}.item-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.item-date{color:var(--text-primary);font-weight:600}.item-session{color:var(--text-secondary);font-family:monospace;font-size:.85rem}.item-meta{color:var(--text-secondary);gap:1rem;margin-bottom:.5rem;font-size:.875rem;display:flex}.item-summary{color:var(--text-secondary);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.9rem;line-height:1.4;display:-webkit-box;overflow:hidden}.modal-footer{border-top:1px solid var(--card-border);justify-content:flex-end;padding:1rem 1.5rem;display:flex}.btn{cursor:pointer;border:none;border-radius:8px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .3s}.btn-outline:hover{background:var(--card-bg);border-color:var(--input-focus-border)}@media (width<=768px){.retro-history-overlay{padding:1rem}.retro-history-modal{max-height:90vh}.item-header{flex-direction:column;align-items:flex-start;gap:.25rem}.item-meta{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){.retro-history-overlay,.retro-history-modal{animation:none}}.drawing-toolbar{background:var(--surface,#f5f5f5);border:1px solid var(--border,#e0e0e0);border-radius:8px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;padding:8px 12px;display:flex}.drawing-toolbar__group{align-items:center;gap:4px;display:inline-flex}.drawing-toolbar__tool{border:1px solid var(--border,#cfcfcf);background:var(--bg,#fff);color:inherit;cursor:pointer;border-radius:6px;align-items:center;gap:4px;padding:6px 10px;font-size:.9rem;display:inline-flex}.drawing-toolbar__tool:hover{background:var(--hover,#eef4ff)}.drawing-toolbar__tool--active{background:var(--accent,#1890ff);color:#fff;border-color:var(--accent,#1890ff)}.drawing-toolbar__tool-label{font-size:.85rem}.drawing-toolbar__swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:22px;height:22px;padding:0;box-shadow:inset 0 0 0 1px #00000026}.drawing-toolbar__swatch--active{border-color:var(--text,#222);transform:scale(1.08)}.drawing-toolbar__clear{border:1px solid var(--danger,#ff4d4f);color:var(--danger,#ff4d4f);cursor:pointer;background:0 0;border-radius:6px;margin-left:auto;padding:6px 12px;font-size:.9rem}.drawing-toolbar__clear:hover{background:var(--danger,#ff4d4f);color:#fff}.spectator-retro-view{background:linear-gradient(135deg, var(--bg-gradient-start) 0%, var(--bg-gradient-end) 100%);width:100%;min-height:100vh;color:var(--text-primary);padding:2rem 0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.retro-setup-card,.retro-waiting-card,.retro-collecting-card,.retro-results-card{background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--card-border);width:calc(100% - 4rem);max-width:1400px;box-shadow:0 8px 32px var(--shadow-light);border-radius:16px;margin:0 auto 2rem;padding:2rem}.card-header{border-bottom:1px solid var(--card-border);justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;display:flex}.card-header h2{color:var(--text-primary);margin:0;font-size:1.75rem;font-weight:600}.header-controls{align-items:center;gap:1rem;display:flex}.setup-content{text-align:center;max-width:500px;margin:0 auto}.setup-instructions{color:var(--text-secondary);margin-bottom:2rem;line-height:1.6}.setup-form{flex-direction:column;gap:1rem;margin-bottom:2rem;display:flex}.setup-form label{color:var(--text-primary);font-size:1.1rem;font-weight:600}.expected-count-input{text-align:center;border:2px solid var(--card-border);background:var(--input-bg);color:var(--text-primary);border-radius:12px;padding:1rem;font-size:1.5rem;transition:all .3s}.expected-count-input:focus{border-color:var(--input-focus-border);box-shadow:0 0 0 3px var(--input-focus-shadow);outline:none}.setup-actions{border-top:1px solid var(--card-border);flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:1rem;padding-top:1rem;display:flex}.waiting-content{text-align:center;padding:2rem 0}.participant-counter{justify-content:center;align-items:baseline;gap:.5rem;margin-bottom:1rem;display:flex}.waiting-text{color:var(--text-secondary);margin-bottom:2rem;font-size:1.2rem}.waiting-instructions{background:var(--card-hover-bg);border-radius:12px;margin-bottom:2rem;padding:1.5rem}.waiting-instructions p{color:var(--text-primary);margin:.5rem 0}.session-info-box{background:var(--card-hover-bg);border-radius:8px;align-items:center;gap:.75rem;padding:1rem 1.5rem;display:inline-flex}.session-label{color:var(--text-secondary);font-weight:500}.session-value{color:var(--text-primary);font-family:monospace;font-size:1.25rem;font-weight:700}.collecting-content{text-align:center;padding:2rem 0}.collecting-note{color:var(--text-secondary);max-width:500px;margin:0 auto;line-height:1.6}.submission-status{justify-content:center;gap:3rem;margin-bottom:2rem;display:flex}.status-number{flex-direction:column;align-items:center;gap:.25rem;display:flex}.status-number .count-current{color:var(--success-color);font-size:3rem;font-weight:700}.status-number .count-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.9rem}.participants-list{text-align:left;max-width:500px;margin:0 auto 2rem}.participants-list h3{color:var(--text-primary);margin-bottom:.75rem;font-size:1.1rem;font-weight:600}.participants-list ul{margin:0;padding:0;list-style:none}.participants-list li{background:var(--card-hover-bg);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding:.75rem 1rem;display:flex}.participants-list li.submitted{border-left:3px solid var(--success-color)}.participants-list li.waiting{border-left:3px solid var(--text-secondary)}.participant-name{color:var(--text-primary);font-weight:500}.submission-indicator{font-size:.85rem;font-weight:600}.participants-list li.submitted .submission-indicator{color:var(--success-color)}.participants-list li.waiting .submission-indicator{color:var(--text-secondary)}.no-participants{color:var(--text-secondary);text-align:center;padding:1rem;font-style:italic}.collecting-actions{margin:1.5rem 0}.results-actions{border-top:1px solid var(--card-border);flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:2rem;padding-top:2rem;display:flex}.btn-primary:disabled{color:#ffffff80;cursor:not-allowed;box-shadow:none;background:#fff3;transform:none}@media (width<=768px){.spectator-retro-view{padding:1rem 0}.retro-setup-card,.retro-waiting-card,.retro-collecting-card,.retro-results-card{width:calc(100% - 1rem);padding:1.5rem}.card-header{text-align:center;flex-direction:column;gap:1rem}.header-controls{flex-wrap:wrap;justify-content:center}.count-current{font-size:3rem}.count-separator,.count-expected{font-size:2rem}.setup-actions,.results-actions{flex-direction:column}.btn{width:100%}}@media (prefers-reduced-motion:reduce){.confirmation-overlay,.confirmation-dialog{animation:none}}.retro-submission-form{flex-direction:column;gap:2rem;display:flex}.form-field{position:relative}.form-field label{align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.field-icon{color:#fff;letter-spacing:.5px;background:linear-gradient(135deg,#4caf50,#45a049);border-radius:6px;padding:.375rem .75rem;font-size:.75rem;font-weight:700}.form-field:first-child .field-icon{background:linear-gradient(135deg,#4caf50,#45a049)}.form-field:nth-child(2) .field-icon{background:linear-gradient(135deg,#2196f3,#1976d2)}.form-field:nth-child(3) .field-icon{background:linear-gradient(135deg,#f44336,#d32f2f)}.form-field:nth-child(4) .field-icon{background:linear-gradient(135deg,#9c27b0,#7b1fa2)}.field-title{color:var(--text-primary);font-size:1.1rem;font-weight:600}.field-hint{color:var(--text-secondary);margin:0 0 .75rem;font-size:.9rem}.form-field textarea{border:2px solid var(--card-border);background:var(--input-bg);width:100%;color:var(--text-primary);resize:vertical;border-radius:12px;min-height:120px;padding:1rem;font-family:inherit;font-size:1rem;line-height:1.6;transition:all .3s}.form-field textarea:focus{border-color:var(--input-focus-border);box-shadow:0 0 0 3px var(--input-focus-shadow);outline:none}.form-field textarea:disabled{opacity:.6;cursor:not-allowed;background:var(--card-hover-bg)}.form-field textarea::placeholder{color:var(--text-secondary);opacity:.7}.char-count{color:var(--text-secondary);background:var(--card-bg);border-radius:4px;padding:.25rem .5rem;font-size:.75rem;position:absolute;bottom:.75rem;right:1rem}.char-count.warning{color:#c66900}.char-count.limit{color:#f44336;font-weight:600}@media (width<=768px){.form-field textarea{min-height:100px;font-size:16px}.field-title{font-size:1rem}}.voter-retro-view{background:linear-gradient(135deg, var(--bg-gradient-start) 0%, var(--bg-gradient-end) 100%);width:100%;min-height:100vh;color:var(--text-primary);padding:2rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.retro-waiting-card,.retro-submitted-card,.retro-form-card,.retro-results-card{background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--card-border);width:100%;max-width:900px;box-shadow:0 8px 32px var(--shadow-light);text-align:center;border-radius:16px;margin:0 auto;padding:2rem}.retro-waiting-card h2,.retro-submitted-card h2{color:var(--text-primary);margin-bottom:1.5rem;font-size:1.75rem}.retro-waiting-card p,.retro-submitted-card p{color:var(--text-secondary);margin:.5rem 0;line-height:1.6}.participant-counter{justify-content:center;align-items:baseline;gap:.5rem;margin:1.5rem 0;display:flex}.count-current{color:var(--success-color);font-size:3rem;font-weight:700}.count-separator{color:var(--text-secondary);font-size:2rem}.count-expected{color:var(--text-primary);font-size:2rem;font-weight:600}.submitted-icon{color:#fff;background:linear-gradient(135deg,#4caf50,#45a049);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:1.5rem auto;font-size:2.5rem;animation:.5s scaleIn;display:flex}@keyframes scaleIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.submission-progress{max-width:400px;margin:2rem auto}.progress-bar{background:var(--card-hover-bg);border-radius:6px;height:12px;margin-bottom:.75rem;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--success-color), #45a049);border-radius:6px;height:100%;transition:width .5s}.progress-text{color:var(--text-secondary);font-size:1rem}.waiting-note{margin-top:1.5rem;font-style:italic}.retro-form-card{text-align:left}.retro-form-card .card-header{border-bottom:1px solid var(--card-border);justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;display:flex}.retro-form-card .card-header h2{color:var(--text-primary);margin:0;font-size:1.75rem;font-weight:600}.waiting-indicator{flex-direction:column;align-items:flex-end;gap:.25rem;display:flex}.waiting-indicator .participant-status{color:var(--text-primary);background:#ffc10733;border:1px solid #ffc10766;border-radius:12px;padding:.25rem .75rem;font-size:1rem;font-weight:600}.waiting-indicator .timer-waiting{color:var(--text-secondary);font-size:.75rem;font-style:italic}.form-actions{border-top:1px solid var(--card-border);flex-direction:column;align-items:center;gap:1.5rem;margin-top:2rem;padding-top:2rem;display:flex}.btn-submit{min-width:200px}.retro-results-card{text-align:left;max-width:1400px}.retro-results-card .card-header{text-align:center;border-bottom:1px solid var(--card-border);margin-bottom:2rem;padding-bottom:1rem}.retro-results-card .card-header h2{color:var(--text-primary);margin:0;font-size:1.75rem;font-weight:600}.results-actions{border-top:1px solid var(--card-border);justify-content:center;gap:1rem;margin-top:2rem;padding-top:2rem;display:flex}.btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;padding:1rem 1.5rem;font-size:1rem;font-weight:600;text-decoration:none;transition:transform .3s,box-shadow .3s,background .3s;display:inline-flex;box-shadow:0 4px 15px #0003}.btn-large{padding:1.25rem 2rem;font-size:1.1rem}.btn-primary:disabled{color:#ffffff80;cursor:not-allowed;background:#fff3}.btn-outline{color:var(--text-primary);border:2px solid var(--card-border);background:0 0}.btn-outline:hover{background:var(--card-bg);border-color:var(--input-focus-border);transform:translateY(-1px)}.confirmation-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.confirmation-dialog{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;width:calc(100% - 2rem);max-width:450px;padding:2rem;animation:.3s slideUp;box-shadow:0 20px 60px #0000004d}.confirmation-dialog h3{color:var(--text-primary);margin:0 0 1rem;font-size:1.5rem}.confirmation-dialog p{color:var(--text-secondary);margin:.75rem 0;font-size:1rem;line-height:1.5}.confirmation-buttons{gap:1rem;margin-top:1.5rem;display:flex}.confirmation-buttons .btn{flex:1;padding:.875rem 1.5rem}.retro-success-card{background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--card-border);width:100%;max-width:700px;box-shadow:0 8px 32px var(--shadow-light);text-align:center;border-radius:16px;margin:0 auto;padding:2rem}.success-header{margin-bottom:1.5rem}.success-icon{margin-bottom:.5rem;font-size:4rem;animation:.5s scaleIn}.success-header h2{color:var(--text-primary);margin:0;font-size:1.75rem;font-weight:600}.success-content{flex-direction:column;align-items:center;gap:1.5rem;display:flex}.success-message{color:var(--text-secondary);margin:0;font-size:1.1rem;line-height:1.5}.meme-container{border-radius:12px;width:100%;max-width:400px;overflow:hidden;box-shadow:0 4px 20px #00000026}.meme-image{width:100%;height:auto;display:block}.loading-fun{flex-direction:column;align-items:center;gap:1rem;padding:2rem 0;display:flex}.loading-spinner{border:3px solid var(--card-border);border-top-color:var(--success-color);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}.loading-fun p{color:var(--text-secondary);font-size:.9rem}@media (width<=768px){.voter-retro-view{padding:1rem}.retro-waiting-card,.retro-submitted-card,.retro-form-card,.retro-results-card{padding:1.5rem}.count-current{font-size:2.5rem}.count-separator,.count-expected{font-size:1.5rem}.submitted-icon{width:60px;height:60px;font-size:2rem}.btn-submit{width:100%}.results-actions{flex-direction:column}.results-actions .btn{width:100%}.retro-success-card{padding:1.5rem}.success-icon{font-size:3rem}.meme-container{max-width:100%}}@media (prefers-reduced-motion:reduce){.submitted-icon,.loading-spinner,.success-icon,.confirmation-overlay,.confirmation-dialog{animation:none}}.retrospective-page{background:linear-gradient(135deg, var(--bg-gradient-start) 0%, var(--bg-gradient-end) 100%);flex-direction:column;min-height:100vh;display:flex}.retrospective-content{flex:1;width:100%}.retrospective-content.spectator-mode{padding-top:0}.retrospective-error{text-align:center;min-height:100vh;color:var(--text-primary);flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex}.connecting-container,.error-container{flex-direction:column;justify-content:center;align-items:center;min-height:60vh;padding:2rem;display:flex}.connecting-message,.error-message{text-align:center;color:var(--text-primary);margin-top:2rem}.connecting-message h2,.error-message h2{margin-bottom:.5rem;font-size:1.5rem}.connecting-message p,.error-message p{color:var(--text-secondary)}.retry-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#4caf50,#45a049);border:none;border-radius:8px;margin-top:1rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .3s}.retry-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #4caf5066}.error-banner{color:#fff;background:linear-gradient(135deg,#f44336,#d32f2f);justify-content:space-between;align-items:center;padding:1rem 2rem;font-weight:500;display:flex}.error-banner button{color:#fff;cursor:pointer;opacity:.8;background:0 0;border:none;padding:0 .5rem;font-size:1.5rem;transition:opacity .2s}.error-banner button:hover{opacity:1}.error-content{max-width:500px}.btn{cursor:pointer;border:none;border-radius:5px;margin:10px;padding:10px 20px}.btn-secondary{color:#fff;background:#545b62}.app{background:linear-gradient(135deg, var(--bg-gradient-start) 0%, var(--bg-gradient-end) 100%);min-height:100vh;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.App{text-align:center;background:linear-gradient(135deg, var(--bg-gradient-start) 0%, var(--bg-gradient-end) 100%);min-height:100vh;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.App-header{max-width:800px;margin:0 auto;padding:2rem}.App-header h1{text-shadow:2px 2px 4px #0000004d;margin-bottom:.5rem;font-size:3rem}.App-header p{opacity:.9;margin-bottom:2rem;font-size:1.2rem}.btn{cursor:pointer;border:none;border-radius:8px;padding:12px 24px;font-size:1rem;font-weight:600;transition:all .3s;box-shadow:0 2px 8px #00000026}.btn-primary{color:#fff;background:linear-gradient(135deg,#4caf50,#45a049)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #4caf504d}.btn-secondary{background:var(--button-bg);color:var(--text-primary);border:2px solid var(--button-border)}.btn-secondary:hover:not(:disabled){background:var(--button-hover-bg);transform:translateY(-2px)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.game-session{flex-direction:column;min-height:100vh;display:flex}.session-content{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:20px}.game-session-error,.connection-error{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:50vh;padding:20px;display:flex}.connection-error h2{margin-bottom:16px;font-size:2rem}.connection-error p{opacity:.9;margin-bottom:24px;font-size:1.1rem}.loading-container{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:50vh;display:flex}.loading-content{flex-direction:column;align-items:center;display:flex}.loading-spinner{width:60px;height:60px;margin-bottom:20px;position:relative}.spinner-ring{border:3px solid #0000;border-top-color:#4caf50;border-radius:50%;animation:1.2s cubic-bezier(.5,0,.5,1) infinite spin;position:absolute}.spinner-ring:first-child{width:60px;height:60px;animation-delay:-.45s}.spinner-ring:nth-child(2){width:48px;height:48px;animation-delay:-.3s;top:6px;left:6px}.spinner-ring:nth-child(3){width:36px;height:36px;animation-delay:-.15s;top:12px;left:12px}.spinner-ring:nth-child(4){width:24px;height:24px;top:18px;left:18px}.loading-message{opacity:.9;margin:0;font-size:1.1rem}.error-boundary{text-align:center;justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.error-content{background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;max-width:500px;padding:30px}.error-content h2{color:var(--error-color);margin-bottom:16px}.error-content p{opacity:.9;margin-bottom:24px}.error-details{text-align:left;background:#0003;border-radius:8px;margin:20px 0;padding:15px}.error-stack{color:#ffeb3b;white-space:pre-wrap;word-break:break-word;font-size:.85rem;overflow-x:auto}.error-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.status-section{background:var(--card-bg);text-align:left;border-radius:12px;margin:2rem 0;padding:1.5rem}.status-item{border-bottom:1px solid var(--card-border);justify-content:space-between;margin-bottom:.5rem;padding:.5rem 0;display:flex}.status-label{font-weight:700}.status-value.success{color:#4ade80}.status-value.pending{color:#fbbf24}.next-steps{background:var(--card-bg);text-align:left;border-radius:12px;margin:2rem 0;padding:1.5rem}.next-steps ol{padding-left:1.5rem}.next-steps li{margin-bottom:.5rem;font-size:1rem}.fibonacci-preview{margin-top:2rem}.voting-cards{flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:1rem;display:flex}.vote-card{border:2px solid var(--card-border);background:var(--card-bg);width:60px;height:80px;color:var(--text-primary);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;justify-content:center;align-items:center;font-size:1.5rem;font-weight:700;transition:all .3s;display:flex}.vote-card:hover{background:var(--card-hover-bg);transform:translateY(-2px)}.vote-card.selected{background:linear-gradient(135deg,#4caf50,#45a049);border-color:#4caf50;transform:translateY(-4px)scale(1.05)}.vote-card:disabled,.vote-card.disabled{cursor:not-allowed;opacity:.5}@media (width<=768px){.App-header{padding:1rem}.App-header h1{font-size:2rem}.session-content{padding:15px}.voting-cards{gap:.5rem}.vote-card{width:50px;height:70px;font-size:1.2rem}.error-actions{flex-direction:column}.btn{width:100%;max-width:200px}}@media (width<=480px){.app{padding:10px}.vote-card{width:45px;height:60px;font-size:1rem}.loading-spinner{width:40px;height:40px}}@media (prefers-reduced-motion:reduce){.spinner-ring{animation:none}}
