.challenge-modal{position:relative;width:90%;max-width:500px;padding:var(--spacing-xl);max-height:90vh;overflow-y:auto}.modal-close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);width:36px;height:36px;background:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-lg);cursor:pointer;color:var(--color-text);transition:all .2s ease}.modal-close:hover{background:var(--color-error);color:#fff}.modal-header{text-align:center;margin-bottom:var(--spacing-xl)}.modal-header h2{font-size:var(--font-size-2xl);font-weight:900;margin-bottom:var(--spacing-xs)}.modal-header p{color:var(--color-text-secondary)}.mode-options{flex-direction:column}.mode-option,.mode-options{display:flex;gap:var(--spacing-md)}.mode-option{position:relative;align-items:center;padding:var(--spacing-lg);background:var(--color-bg-secondary);border:3px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.mode-option:hover{transform:translateX(4px);border-color:var(--color-primary);box-shadow:var(--shadow-hard-sm)}.mode-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}.mode-info{flex:1 1}.mode-info h3{font-weight:800;margin-bottom:2px}.mode-info p{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.mode-tag{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm)}.mode-arrow{font-size:var(--font-size-xl);margin-left:var(--spacing-sm)}.join-divider,.mode-arrow{color:var(--color-text-muted)}.join-divider{display:flex;align-items:center;gap:var(--spacing-md);margin:var(--spacing-xl) 0}.join-divider:after,.join-divider:before{content:"";flex:1 1;height:2px;background:var(--color-border)}.join-room-section{text-align:center}.join-room-section h4{margin-bottom:var(--spacing-md);font-weight:700}.join-form{display:flex;gap:var(--spacing-sm)}.join-form .input{flex:1 1;text-align:center;font-size:var(--font-size-lg);font-weight:700;letter-spacing:4px;text-transform:uppercase}.join-form .btn{flex-shrink:0}